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

โค้ด C++ หาว่าหมายเลขไหนมีโอกาสมากกว่า

สมมติว่าเรามีตัวเลข k หลัก m และ n ตัวเลขถูกสุ่มสลับแล้วเปรียบเทียบ เราต้องหาว่าหมายเลขไหนมีโอกาสมากกว่าที่จะใหญ่กว่า

เช่น ถ้าอินพุตคือ n = 231, m = 337, k = 3 เอาต์พุตจะเป็น 'Second' หมายถึงหมายเลขที่สองมีโอกาสมากกว่า

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

s1 := แปลง n เป็นสตริง
s2 := แปลง m เป็นสตริง
f := 0, s := 0
for i := 0 ถึง k-1:
    if s1[i] > s2[i]: เพิ่ม f ขึ้น 1
    else if s1[i] < s2[i]: เพิ่ม s ขึ้น 1
if f > s: print("First")
else if s > f: print("Second")
else: print("Equal")

ตัวอย่างโค้ด

#include <bits/stdc++.h>
using namespace std;

void solve(int n, int m, int k) {
    string s1 = to_string(n);
    string s2 = to_string(m);
    int f = 0, s = 0;
    for (int i = 0; i < k; i++) {
        if (s1[i] > s2[i]) f++;
        else if (s1[i] < s2[i]) s++;
    }
    if (f > s) cout << "First" << endl;
    else if (s > f) cout << "Second" << endl;
    else cout << "Equal" << endl;
}

int main() {
    int n = 231, m = 337, k = 3;
    solve(n, m, k);
    return 0;
}

อินพุต

231, 337, 3

เอาต์พุต

Second