두 개의 숫자와 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