1029第二届程序设计大赛 数字根

#include <stdio.h>
/*
作者:
    厦门理工学院 计算机与信息工程学院 FnLock
时间:
    2017年11月12日00:14:34
程序描述:
第二届程序设计大赛 数字根

Time Limit:1000MS  Memory Limit:65536K
Total Submit:308 Accepted:200

Description

一个正整数(N <= 100000)的根是通过其各位数字之和求得。如果计算结果是个位数,那么这个正整数的根就是这个位数;如果计算结果是两位数或者是多位数,那么这些数的数字就需要重复累加,直到累加结果是一位数为止。 
例如,正整数24,将其数字2和数字4累加得到6,因为6是个位数,所以正整数24的根就是6;例如,正整数39,累加3和9得到12,12不是个位数,所以需要重复累加,将1和2累加得到3,3是个位数,所以3是正整数39的根。

Input

输入将由多行正整数组成,每行一个正整数,数0表示输入结束。

Output

对应每行输入的正整数,输出每行其对应的根。

Sample Input


24
39
583
0
Sample Output


6
3
7
Source
*/
int root(int n)//求根 
{
    int temp=n;
    int sum=0;
    while(temp>0)
    {
        sum+=temp%10;
        temp/=10;
    }
    return sum;
} 
int main(void)
{
    int n;
    while(scanf("%d",&n)&&n!=0)
    {
        int sum=root(n);
        while(sum>9)//若根为两位数则继续求根 
        {
            sum=root(sum);
        }
        printf("%d\n",sum);
    }
    return 0;
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值