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

โค้ด C++ หาว่าใครให้ลูกอมไม่พอ

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

เช่น ถ้าอินพุตคือ a = 7; b = 6 เอาต์พุตจะเป็น Amal เพราะ เริ่มต้นอมลให้ 1 บิมลให้ 2 ต่อมาอมลให้ 3 บิมลให้ 4 ตอนนี้รอบของอมลต้องให้ 5 ลูก แต่เขาเหลือแค่ 4 ลูก

ขั้นตอนการแก้ปัญหา

x := รากที่สองของ a
if x * (x + 1) > b:
    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