Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

รหัส C ++ เพื่อค้นหาผู้ที่ไม่สามารถให้ลูกอมเพียงพอ


สมมติว่าเรามีตัวเลขสองตัว a และ b มีลูกอมจำนวน a และ b อยู่ในมือของ Amal และ Bimal Amal มอบขนม 1 เม็ดให้กับ Bimal และ Bimal มอบขนมสองชิ้นให้กับ Amal ในคราวถัดไป Amal ให้ลูกอม 3 เม็ดและ Bimal ให้ 4 เม็ดเป็นต้น สิ่งนี้ดำเนินต่อไปจนถึงช่วงเวลาที่หนึ่งในนั้นไม่สามารถให้ขนมในปริมาณที่เหมาะสมได้ พวกเขาไม่คิดว่าขนมที่พวกเขาได้รับจากคู่ต่อสู้เป็นของตัวเอง เราต้องหาว่าใครเป็นคนแรกไม่สามารถให้ขนมในปริมาณที่เหมาะสมได้

ดังนั้นหากอินพุตเป็นเหมือน a =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