使用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