Nhiệm vụ được giao là tìm ra số người tối đa có thể bị giết với sức mạnh P. Xem xét một hàng có vô số người và mỗi người trong số họ có số chỉ mục bắt đầu từ 1.
Sức mạnh của s th người được đại diện bởi s 2 . Sau khi giết một người bằng sức mạnh, sức mạnh của bạn cũng giảm đi.
Bây giờ chúng ta hãy hiểu những gì chúng ta phải làm bằng cách sử dụng một ví dụ -
Đầu vào
P = 20
Đầu ra
3
Giải thích
Strength of 1st person = 1 * 1 = 1 < 20, therefore 1st person can be killed. Remaining strength = P – 1 = 20 – 1 = 19 Strength of 2nd person = 2 * 2 = 4 < 19, therefore 2nd person can be killed. Remaining strength = P – 4 = 19 – 4 = 15 Strength of 3rd person = 3 * 3 = 9 < 15, therefore 3rd person can be killed. Remaining strength = P – 9 = 15 – 9 = 6 Strength of 4th person = 4 * 4 = 16 > 6, therefore 4th person cannot be killed. Output = 3
Đầu vào
30
Đầu ra
4
Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau
-
Trong hàm main (), hãy khởi tạo P =30 kiểu int vì nó sẽ lưu trữ độ mạnh và mật khẩu vào hàm Max ().
-
Trong hàm Max () khởi tạo s =0 và P =0 cả hai kiểu int.
-
Vòng lặp từ j =1 đến j * j <=P
-
Đặt s =s + (j * j) và nếu s <=P thêm 1 vào ans, thì ngắt;
-
Trả lại ans.
Ví dụ
#include <bits/stdc++.h> using namespace std; int Max(int P){ int s = 0, ans = 0; for (int j = 1; j * j <= P; j++){ s = s + (j * j); if (s <= P) ans++; else break; } return ans; } //main function int main(){ //Strength int P = 30; cout << “Maximum number of people that can be killed with strength P are: ”<<Max(P); return 0; }
Đầu ra
Maximum number of people that can be killed with strength P are: 4