4 calc the sum (100分)

4 calc the sum (100分)

在遥远的艾泽拉斯大陆上,有一个十分崇拜数字的种族。他们认为万物都是由数字组成的,而且一切的数字最后都能变成一个单独的数码。比如数字S(1990)=1+9+9+0=19,S(19)=10,S(10)=1.

有一天他们从一个废墟中找到一个远古的羊皮卷轴,上面写满了密密麻麻的数字,族长认为卷轴能预言种族的未来。但是他们无法解读卷轴,你能帮助他们么?

输入格式:
一开始是一个数字T(0<T<=10)表示数据组数。 接下来T行,每行是一个数n.(0<n<=10
​1000000
​​ ),数字可能非常大所以只能用字符数组存储。

输出格式:
输出T行,每行一个数,表示羊皮卷轴上的数对应的数码。

输入样例:

1
5555

输出样例:

2
#include<stdio.h>
int main(){
    int n;
    int s=0,b;
    int j=0;
    scanf("%d",&n);
    char a[2000000];
    for (int i = 1; i <= n; i++) {
        scanf("%s",a);
        if (a[1]=='\0'){
            printf("%c\n",a[0]);
        }else{
            while (a[j]!='\0'){
                s=s+a[j]-'0';
                j++;
            }
            j=0;
            b=0;
            while (s>=10){
                while (s!=0){
                    b=b+s%10;
                    s=s/10;
                }
                s=b;
                b=0;
            }

            printf("%d\n",s);
            s=0;
            j=0;
        }
    }
    return 0 ;
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值