c++对于一个正整数n,将它的各个位相加得到一个新的数字,如果这个数字是一位数,我们称之为n的数根,否则重复处理直到它成为一个一位数,这个一位数也算是n的数根例如:考虑24,2+4=6,6就是24的数根。考虑39,3+9=12,1+2=3,3就是39的数根请编写程序,计算n的数根。(n值范围为1-999。)
时间: 2024-03-11 17:47:29 浏览: 15
好的,这是一道比较经典的数学题目,可以用到数根的性质。下面是C++的代码实现:
```c++
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int sum = 0;
while (n > 0) {
sum += n % 10;
n /= 10;
}
while (sum >= 10) {
int tmp = sum;
sum = 0;
while (tmp > 0) {
sum += tmp % 10;
tmp /= 10;
}
}
cout << sum << endl;
return 0;
}
```
我们首先读入一个正整数n,然后用一个while循环不断取n的个位、十位、百位……并将它们相加,得到一个sum值。然后我们用另一个while循环,不断将sum的各个位相加,直到得到一个一位数。最后输出这个一位数即可。
相关问题
C++对于一个正整数n,将它的各个位相加得到一个新的数字,如果这个数字是一位数,我们称之为n的数根,否则重复处理直到它成为一个一位数,这个一位数也算是n的数根
好的,以下是C++实现代码:
```c++
#include <iostream>
using namespace std;
int digital_root(int n) {
int sum = 0;
while (n > 0) {
sum += n % 10;
n /= 10;
if (n == 0 && sum >= 10) {
n = sum;
sum = 0;
}
}
return sum;
}
int main() {
int num = 24;
cout << "24的数根为:" << digital_root(num) << endl;
num = 39;
cout << "39的数根为:" << digital_root(num) << endl;
return 0;
}
```
运行结果为:
```
24的数根为:6
39的数根为:3
```
这样就可以计算任意正整数的数根了。
C语言:从键盘输入一个正整数n, 计算该数的各位数之 和并输出
好的,以下是 C 语言代码实现:
```c
#include <stdio.h>
int main() {
int n, sum = 0;
printf("请输入一个正整数:");
scanf("%d", &n);
while (n) {
sum += n % 10;
n /= 10;
}
printf("各位数之和为:%d\n", sum);
return 0;
}
```
跟上面的 C++ 代码实现类似,输入一个数字,通过每次取余数和整除10来获取各个位上的数字,然后将他们相加得到最终的和。