どの数値を大きくできるかを調べるための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
-
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 +
-
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 <