C++中各位數字之和為十的第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;
}輸出
如果執行以上程式碼,則會得到以下結果。
73
廣告
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP