TCreopargh
书山有路搞为径,学海无涯机作舟。
乱搭的站
(C++)数字处理
问题描述
keyboard_arrow_down

编写一个程序,从键盘输入n个非零整数(0 < n <= 1000000000),对每个整数n进行如下处理:将整数的各位数字取出来相加,如果结果是一位数则输出该数,否则重复上述过程,直到得到的结果为一位数,并输出该结果。

输入说明
keyboard_arrow_down

多组数据,每行一个整数,输入为0时表示输入结束。

输出说明
keyboard_arrow_down

输出每个整数的处理结果,然后换行。 

输入样例
keyboard_arrow_down

24 
39 
0  

输出样例
keyboard_arrow_down


s使用c++的string类实现,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include<iostream>
#include<string>
using namespace std;
int main()
{
    while(true)
    {
        string n;
        getline(cin,n);
        if(n=="0")
            break;
        else
        {
            while(true)
            {
                int sum=0;
                for(int i=0; i<n.size(); i++)
                {
                    sum+=n.at(i)-'0';
                }
                if(sum<10)
                {
                    cout<<sum<<endl;
                    break;
                }
                else
                {
                    char *s=new char[1000];
                    sprintf(s,"%d",sum);
                    n=s;
                    continue;
                    delete []s;
                }
            }
        }  
    }
    return 0;
}
赞赏

发表评论

textsms
account_circle
email

乱搭的站

(C++)数字处理
问题描述 keyboard_arrow_down 编写一个程序,从键盘输入n个非零整数(0 < n <= 1000000000),对每个整数n进行如下处理:将整数的各位数字取出来相加,如果结果是一位…
扫描二维码继续阅读
2018-11-15