Chúng ta được một tam giác cân vuông. Tam giác cân là tam giác có độ dài hai cạnh bằng nhau. Tam giác vuông là tam giác có chiều cao (ag trong hình) và đáy (dg trong hình) vuông góc với nhau. Mục đích là tìm số ô vuông tối đa có thể xếp được vào tam giác cân bên phải này có cạnh 2 đơn vị sq. Các cạnh hoặc chiều cao (cả hai đều bằng nhau) được lấy làm đầu vào. Số ô vuông là đầu ra.
Tham khảo hình bên dưới để hiểu vấn đề
Hình tam giác có chiều cao ag và đáy là gd đã cho có 3 hình vuông cạnh 2 mỗi hình. Từ góc kết thúc là ‘a’ và ‘d’, các tam giác aib và cde sẽ không bao giờ góp phần vào bất kỳ hình vuông nào. Vì vậy, đầu tiên chúng ta sẽ luôn cần thêm 2 đơn vị chiều dài cho các hình tam giác này. Không, chúng ta phải chia gd cơ sở còn lại (hoặc chiều cao ag) cho 2 để đếm không. hình vuông. Tương tự với trường hợp chiều cao (ag).
while (base> 2) square + =(base-2) / 2 base =base-2.Sử dụng công thức của Ap =b * (b + 1) /2…. where new b =b-2
Hãy cùng hiểu với các ví dụ.
Đầu vào - Cơ sở:12
Đầu ra - Số ô vuông:15
Giải thích
cơ số 12> 2, hình vuông 10/2 =5, cơ sở mới 12-2 =10 cơ số 10> 2, hình vuông 8/2 =4, hình vuông mới 10-2 =8 cơ sở 8> 2, hình vuông 6/2 =3 , cơ số mới 8-2 =6 cơ số 6> 2, hình vuông 4/2 =2, cơ số mới 6-2 =4 cơ số 4> 2, hình vuông 2/2 =1, cơ sở mới 4-2 =2 cơ số 2> 2 X Tổng số hình vuông =5 + 4 + 3 + 2 + 1 =15
Đầu vào - .5
Đầu ra - Số ô vuông - 1
Giải thích
cơ số 5> 2, hình vuông 3/2 =1, cơ sở mới 5-2 =3 cơ sở 3> 2, hình vuông 1/2 =0, cơ sở mới 3-2 =1 cơ sở 1> 2 X Tổng hình vuông =1Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau
-
Cơ sở biến số nguyên được sử dụng để lưu trữ Cơ sở của tam giác ..
-
Hàm numofSquares (int b) được sử dụng để đếm số ô vuông mà tam giác có cơ sở b có thể chứa được.
-
Lúc đầu, b =b-2-khoảng trống từ góc kết thúc
-
Theo công thức, b =floor (b / 2), b mới này có thể có b * (b + 1) / 2 hình vuông cạnh 2.
-
Trả về phép tính dưới dạng số ô vuông.
Ví dụ
#include#include int numofSquares (int b) {// loại bỏ phần thừa ta sẽ // luôn cần b =(b - 2); // Vì mỗi hình vuông có đáy là // chiều dài của 2 b =floor (b / 2); return b * (b + 1) / 2;} int main () {int base =8; printf ("Số lượng hình vuông tối đa có thể chứa được:% d", numofSquares (cơ sở)); trả về 0;}
Đầu ra
Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -
Số tối đa. của hình vuông có thể chứa được:6