C ++のNの桁の合計よりも大きい桁の合計で、Nよりも小さい最大の数値
このチュートリアルでは、N未満の数値を検出し、桁の合計がnの桁の合計よりも大きいプログラムを作成します。
問題を解決するための手順を見てみましょう。
- 数字の合計を求める関数を記述します。
- 初期化n。
- n-1から1まで繰り返すループを作成します。
- 現在の数値の桁の合計をnの桁の合計で確認します。
- 現在の数値の桁の合計がnより大きい場合は、現在の数値を返します。
- 次の番号に移動します。
例
コードを見てみましょう。
#include <bits/stdc++.h> using namespace std; int sumOfDigits(int n) { int digitsSum = 0; while (n > 0) { digitsSum += n % 10; n /= 10; } return digitsSum; } int findLargestNumber(int n) { int i = n - 1; while (i > 0) { if (sumOfDigits(i) > sumOfDigits(n)) { return i; } i--; } return -1; } int main() { int n = 75; cout << findLargestNumber(n) << endl; return 0; }
出力
上記のコードを実行すると、次の結果が得られます。
69
結論
チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。
-
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 +
-
Xで割り切れる最大のK桁の数値のC++プログラム?
2つの整数XとKが与えられます。 Kは整数の桁数です。論理は、Xで割り切れる最大のK桁の数字を見つけることです。 Input: X = 30, K = 3 Output: 980 説明 980は、30で割り切れる最大の3桁の数値です。Kを10の累乗として、1を引くと、最大のK桁の数値が得られます。その後、最大の数値を取得しようとします。これはXで除算されます。 例 #include <iostream> #include <math.h> using namespace std; int main() { int X = 20;