두 개의 숫자와 b가 있다고 가정합니다. Amal과 Bimal의 손에는 와 b개의 사탕이 있습니다. Amal은 Bimal에게 사탕 1개를 주고 Bimal은 Amal에게 사탕 2개를 주며 다음 차례에는 Amal이 3개, Bimal이 4개를 주는 식입니다. 어느 한 쪽이 제대로 된 양의 사탕을 주지 못하는 순간까지 계속됐다. 그들은 상대방에게서 받은 사탕을 자신의 것으로 여기지 않는다. 누가 먼저 사탕을 제대로 줄 수 없는지 찾아야 합니다.
따라서 입력이 =7과 같으면; b =6이면 출력은 Amal이 됩니다. 처음에 Amal은 1개, Bimal은 2개, Amal은 3개, Bimal은 4개를 주었으므로 이번에는 Amal이 사탕 5개를 주어야 하지만 4개만 있기 때문입니다.
단계
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
x := square root of a if x * (x + 1) > b, then: return "Bimal" Otherwise return "Amal"
예
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
#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;
} 입력
7, 6
출력
Amal