使用 C++ 查找一个数字 x,使得 x 及其各位数字之和等于给定的 n。


这里我们将看到一个问题,我们取一个数字 n,我们需要找到另一个值,比如 x,使得 x 加上 x 的各位数字之和等于给定的数字 n。假设 n 的值为 21。此程序将返回数字 x = 15,因为 15 加上 15 的各位数字之和,即 15 + 1 + 5 = 21 = n。

为了解决这个问题,我们必须遵循简单的方法。我们将迭代 1 到 n,在每次迭代中,我们将查看数字及其各位数字之和是否与该数字相同,如果是,则停止,否则继续。

示例

 在线演示

#include<iostream>
using namespace std;
int getDigitSum(int n) {
   int sum = 0;
   while (n) {
      sum += n % 10;
      n /= 10;
   }
   return sum;
}
int getNumber(int n) {
   for (int i = 0; i <= n; i++)
      if (i + getDigitSum(i) == n)
         return i;
   return -1;
}
int main() {
   int n = 21;
   cout << "The value of x is: " << getNumber(n);
}

输出

The value of x is: 15

更新于: 2019年10月29日

78 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告