合計が 10 に等しい数値には、
19、28、37、46、55、64、73、82、91 などが含まれます。
このシーケンスを見ると、それぞれの数字に 9 が加算されます。上記のシーケンスでは、9 を足す過程で、桁の合計が 10 にならない数字がいくつかあります。ただし、すべての数値の合計は 10 になります。
つまり、9 ずつ増分して数値の合計をチェックし、n 番目の数値を見つけるループを作成できます。いくつかの例を見てみましょう
入力
3 7
出力
37 73
#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 サイトの他の関連記事を参照してください。