首页 > 文章列表 > 在C++中,将满足数字之和为十的第n个数字进行翻译

在C++中,将满足数字之和为十的第n个数字进行翻译

c语言 数字之和 翻译。
235 2023-09-03

各位数字和等于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。

实现

< p>以下是上述算法的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