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

Mã C ++ để tìm ai không thể cho đủ kẹo

Giả sử chúng ta có hai số a và b. Có a và b số kẹo trong tay của Amal và Bimal. Amal đưa 1 viên kẹo cho Bimal và Bimal đưa hai viên kẹo cho Amal, ở lượt tiếp theo Amal cho 3 viên kẹo và Bimal cho 4 viên và cứ tiếp tục như vậy. Điều này tiếp tục cho đến khi một trong hai người không thể cho đúng số kẹo. Họ không coi những viên kẹo họ nhận được từ đối thủ như của riêng họ. Chúng ta phải tìm xem ai là người đầu tiên không thể cho đúng số kẹo.

Vì vậy, nếu đầu vào giống như a =7; b =6 thì đầu ra sẽ là Amal, vì ban đầu Amal cho 1, Bimal cho 2, sau đó Amal cho 3 và Bimal cho 4, bây giờ đến lượt Amal phải cho 5 viên kẹo nhưng anh ta chỉ có 4 viên.

Các bước

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

x := square root of a
if x * (x + 1) > b, then:
   return "Bimal"
Otherwise
   return "Amal"

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

#include <bits/stdc++.h>
using namespace std;
string solve(int a, int b){
   int x = sqrt(a);
   if (x * (x + 1) > b)
      return "Bimal";
   else
      return "Amal";
   }
int main(){
   int a = 7;
   int b = 6;
   cout << solve(a, b) << endl;
}

Đầu vào

7, 6

Đầu ra

Amal