Computer >> Máy Tính >  >> Lập trình >> C ++

Mã C ++ để tìm ra con số nào có thể lớn hơn

Giả sử, chúng ta được cho trước hai số có k chữ số m và n. Các chữ số của các số được xáo trộn ngẫu nhiên và sau đó được so sánh. Chúng ta phải tìm ra con số nào có xác suất cao hơn để lớn hơn.

Vì vậy, nếu đầu vào là n =231, m =337, k =3, thì đầu ra sẽ là 'Thứ hai' hoặc số thứ hai có xác suất lớn hơn.

Các bước

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

s1 := convert n to string
s2 := convert m to string
f := 0, s = 0
for initialize i := 0, when i < k, update (increase i by 1), do:
   if s1[i] > s2[i], then:
      (increase f by 1)
   otherwise when s1[i] < s2[i], then:
      (increase s by 1)
if f > s, then:
   print("First")
otherwise when s > f, then:
   print("Second")
Otherwise
   print("Equal")

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

#include <bits/stdc++.h>
using namespace std;
#define N 100
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;
}

Đầu vào

231, 337, 3

Đầu ra

Second