问题标题: 酷町堂:1802 数字各位求和,求思路(最好是伪代码)

0
0
已解决
张舒斌
张舒斌
中级光能
中级光能

1802   数字各位求和

题目描述 Description

对于一个正整数n,将它的各个数位上的数字相加得到一个新数,如果这个数是一位数,我们就输出这个数字和,否则重复处理直到它成为一个一位数。 例如,n=34,3+4=7,7是一位数,所以输出7。 再如,n=345,3+4+5=12,1+2=3,3是一位数,所以输出3。 对于输入数字n,编程计算它的各位数字之和。

输入描述 Input Description

输入一个正整数n(1<=n<=100000)

输出描述 Output Description

输出一个经过多次各位数字求和以后的一位数

样例输入 Sample Input


 

345

样例输出 Sample Output


 

3

张舒斌在2018-04-02 20:43:56追加了内容

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int x,sum=0,w=0;
    cin>>x;
    while(x!=0&&w!=1)
    {
        ???????
        sum+=x;
        if(x>=0&&x<=9)
        {
            w=1;
        }
    }
    cout<<sum;
    return 0;
}

问号处填什么式子(最好说明原因,说明原因100%采纳)


0
已采纳
贾文卓
贾文卓
高级光能
高级光能
while(n>=10)
    n=sum(n);//sum(n)表示n的各个位数之和。

如果你会写函数就写一个sum函数,要不然你就在主函数改一改。

0
程以恒
程以恒
初级守护
初级守护

循环 将这个数 %10取余,分别得到每个位上数值,再将这个数/10,知道这个数<10

0
赵逸凡
赵逸凡
初级启示者
初级启示者

整数求位算法或者字符串

0
我要回答