C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

どの数値を大きくできるかを調べるためのC++コード


2つのk桁の数字mとnが与えられたと仮定します。数字の数字はランダムにシャッフルされてから比較されます。どの数字が大きくなる可能性が高いかを見つける必要があります。

したがって、入力がn =231、m =337、k =3のような場合、出力は「2番目」になるか、2番目の数値が大きくなる可能性が高くなります。

ステップ

これを解決するには、次の手順に従います-

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")

理解を深めるために、次の実装を見てみましょう-

#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;
}

入力

231, 337, 3

出力

Second

  1. C++で数字dを含む番号を検索します

    数字dと上限nがあるとします。 0からnの範囲のdを含むすべての数値を見つける必要があります。したがって、n =20で、桁が3の場合、数値は[3、13]になります。 この問題を解決するために、すべての数値を文字列として受け取り、文字列に数字が含まれている場合は数値が出力され、そうでない場合は無視されます。 例 #include<iostream> using namespace std; int getAllNumWithDigit(int n, int d) {    string str = "";    str +

  2. C++でDで割り切れるN桁の数値を検索します

    NとDの2つの数があるとします。Dで割り切れるN桁の数を見つける必要があります。Nが3で、Dが5の場合、数は500になります。これは簡単に解決できます。 Dが10でNが1の場合、それは不可能です。 Dを入れて、Dの桁数がmであると仮定し、N – m個の0を付けて、N桁の数でDで割り切れるようにします。 例 #include<iostream> using namespace std; string nDigitDivByD(int n, int d) {    string ans = "";    if (d <