C++ 程式碼查詢誰無法提供足夠的糖果


假設我們有兩個數字 a 和 b。阿瑪爾和比馬爾手中有 a 和 b 顆糖果。阿瑪爾給了比馬爾一顆糖果,比馬爾給了阿瑪爾兩顆糖果,下一輪阿瑪爾給了 3 顆糖果,比馬爾給了 4 顆,以此類推。一直這樣下去,直到他們中的一人無法給對手適當數量的糖果時為止。他們不會將從對手那裡得到的糖果視為自己的。我們必須找出誰是第一個無法給對手適當數量的糖果的人。

所以,如果輸入類似於 a = 7;b = 6,那麼輸出將是 Arnal,因為最初 Arnal 給了一顆,Bimal 給了兩顆,然後 Arnal 給的三顆,Bimal 給的 4 顆,現在在這個回合中 Arnal 必須給 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

更新於: 2022-03-29

119 次檢視

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告