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

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

結論

チュートリアルに質問がある場合は、コメントセクションにそのことを記載してください。


  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. 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;