ホームページ >バックエンド開発 >C++ >C++ では、数値の合計が 10 になるように n 番目の数値を変換します。

C++ では、数値の合計が 10 になるように n 番目の数値を変換します。

WBOY
WBOY転載
2023-09-05 08:41:041012ブラウズ

C++ では、数値の合計が 10 になるように n 番目の数値を変換します。

合計が 10 に等しい数値には、

19、28、37、46、55、64、73、82、91 などが含まれます。

このシーケンスを見ると、それぞれの数字に 9 が加算されます。上記のシーケンスでは、9 を足す過程で、桁の合計が 10 にならない数字がいくつかあります。ただし、すべての数値の合計は 10 になります。

つまり、9 ずつ増分して数値の合計をチェックし、n 番目の数値を見つけるループを作成できます。いくつかの例を見てみましょう

入力

3
7

出力

37
73

アルゴリズム

  • 初期化数値 n
  • はカウンターを 0 に初期化します。
  • 19
    • 現在の数値の合計が 10 の場合、カウンターを 1 つインクリメントします。
    • カウンタが n に等しい場合は、現在の数値を返します。
    • 反復変数を 9 ずつ増やします。

実装

以下は、上記のアルゴリズムの C 実装です。
#include <bits/stdc++.h>
using namespace std;
int findNthNumber(int n) {
   int count = 0, i = 19;
   while (true) {
      int sum = 0;
      for (int number = i; number > 0; number = number / 10) {
         sum = sum + number % 10;
      }
      if (sum == 10) {
         count++;
      }
      if (count == n) {
         return i;
      }
      i += 9;
   }
   return -1;
}
int main() {
   int n = 7;
   cout << findNthNumber(7) << endl;
   return 0;
}

出力

上記のコードを実行すると、次の結果が得られます。

えええええ

以上がC++ では、数値の合計が 10 になるように n 番目の数値を変換します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。