数字根的计算

正整数的数字根是将数位上的数字求和进行计算而来。如果各位数字之和为一位的整数,那么这个整数就是这个数的数字根;如果之后为多位数,那么重复运用此规则进行计算直至求出一个一位数。例如12,那么它的数字根就为1+2=3;例如39那么它的数字根就为3+9=12,1+2=3,最终为3。

输入

每行输入一个正整数,输入0表示结束。

输出

输出一个一位数。

样例输入
24
39
0
样例输出
6
3
#include <stdio.h>
int f(int n){
if (n <= 9){ return n; }
int r = 0;
while (n > 0){
   r += n%10;
   n /= 10;
}
return f(r);
}
int main(){
char s[1024];
int len, i, n;
while (scanf("%s", s) == 1){
   if (s[0]=='0' && s[1]=='\0'){ break; }
   for (len=0; s[len]; ++len);
   n = 0;
   for (i=0; i<len; ++i){
    n += s[i]-'0';
   }
   printf("%d\n", f(n));
}
return 0;
}

 

转载于:https://www.cnblogs.com/Lazy-Cat/p/9838470.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值