Tin học Các bạn giúp mình với. Mình cảm ơn nhiều

Sosvoi

Học sinh mới
12 Tháng hai 2023
2
0
1
17
Hà Nội
[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

Bài 1 Tam giác

Bình có N chiếc đũa, độ dài mỗi chiếc đũa có thể khác nhau. Binh muốn tạo ra các tam giác bằng cách ghép 3 chiếc đũa lại với nhau, độ dài mỗi cạnh của tam giác đúng bằng độ dài một chiếc đũa.

Yêu cầu: Giúp Bình tính xem có thể tạo ra bao nhiêu tam giác nhọn, vuông, tù khác nhau từ các chiếc đũa này ( tam giác được gọi là khác nhau nếu có ít nhất một chiếc đũa khác nhau)

Dữ liệu vào: Đọc dữ liệu từ tập BAIL.INP gồm:

Dòng đầu tiên là số lượng chiếc đũa có được ( N chiếc (35N 10000)). Dòng thứ hai gồm N số nguyên (N<10) là chiều dài của các chiếc địa.

Dữ liệu ra: Ghi ra tập BAIL.OUT một dòng duy nhất gồm 3 số nguyên lần lượt là số lượng tam giác nhọn, vuông, tù đã được tạo ra.
 

aviaiva

Banned
Banned
Thành viên
17 Tháng ba 2008
70
31
111
32
An Giang
https://vatlypt.com
ngôn ngữ lập trình đề bài yêu cầu là gì
 

aviaiva

Banned
Banned
Thành viên
17 Tháng ba 2008
70
31
111
32
An Giang
https://vatlypt.com
Tham khảo
program triangle_types;

var n, i, j, k: integer; a: array[1..10000] of integer; right_triangle, isosceles, scalene: integer;

begin right_triangle := 0; isosceles := 0; scalene := 0;
readln(n);

for i := 1 to n do read(a);

for i := 1 to n - 2 do for j := i + 1 to n - 1 do for k := j + 1 to n do if (a + a[j] > a[k]) and (a + a[k] > a[j]) and (a[j] + a[k] > a) then begin
if (a * a + a[j] * a[j] = a[k] * a[k]) or (a * a + a[k] * a[k] = a[j] * a[j]) or (a[j] * a[j] + a[k] * a[k] = a * a) then inc(right_triangle) else if (a = a[j]) and (a[j] = a[k]) then inc(isosceles) else inc(scalene); end;

writeln(right_triangle, ' ', isosceles, ' ', scalene); end.
 
Top Bottom