Computer >> Máy Tính >  >> Lập trình >> C ++

Số người tối đa có thể bị giết với sức mạnh P trong C ++

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