C++で数字との合計がNに等しい数Xを見つけます
このチュートリアルでは、数字を含むいくつかが指定された数Nに等しい数を見つけます。
考え方は簡単です。与えられた数の左右100個の数をチェックします。 N≤1000000000であり、合計が100を超えることはありません。
問題を解決するための手順を見てみましょう。
-
番号を初期化します。
-
100回繰り返すループを作成します。
-
n--iおよびn+iの値を取得します。
-
数字の合計を見つけて追加します。
-
それらのいずれかがNに等しい場合は、それらを印刷します。
-
例
コードを見てみましょう。
#include <bits/stdc++.h> using namespace std; int digitsSum(int n) { int sum = 0; while (n) { sum += n % 10; n /= 10; } return sum; } void findX(long int n) { bool is_found = false; for (int i = 0; i <= 100; i++) { long int valueOnLeft = abs(n - i) + digitsSum(abs(n - i)); long int valueOnRight = n + i + digitsSum(n + i); if (valueOnLeft == n) { is_found = true; cout << abs(n - i) << " "; } if (valueOnRight == n) { is_found = true; cout << (n + i) << " "; } } if (!is_found) { cout << "No numbers found"; } cout << endl; } int main() { int n = 89; findX(n); return 0; }
出力
上記のプログラムを実行すると、次の結果が得られます。
76
結論
チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。
-
C ++を使用して、xとその数字の合計が与えられたnと等しくなるような数xを見つけます。
ここで、1つの問題が発生します。ここで、数値nを取得する場合、x +桁の合計xが指定された数値nと同じになるように、xなどの別の値を見つける必要があります。 nの値が21であると仮定します。このプログラムは、15+桁の合計15、つまり15 + 1 + 5 =21=nとして数値x=15を返します。 この問題を解決するには、単純なアプローチに従う必要があります。 1からnまで繰り返し、各繰り返しで、数値とその桁の合計の合計が数値と同じであるかどうかを確認し、停止します。それ以外の場合は続行します。 例 #include<iostream> using namespace std; i
-
xとその桁の合計がC++で指定されたnと等しくなるような数xを見つけます
ここで、1つの問題が発生します。ここで、数値nを取得する場合、x +桁の合計xが指定された数値nと同じになるように、xなどの別の値を見つける必要があります。 nの値が21であると仮定します。このプログラムは、15+桁の合計15、つまり15 + 1 + 5 =21=nとして数値x=15を返します。 この問題を解決するには、単純なアプローチに従う必要があります。 1からnまで繰り返し、各繰り返しで、数値とその桁の合計の合計が数値と同じであるかどうかを確認し、停止します。それ以外の場合は続行します。 例 #include<iostream> using namespace std; i