ZOJ1115解题

zoj1115题目不难,由于数字较大,所以用字符串存储。还是不熟练,多多练习,就会好多了。

Code:
  1. #include<stdio.h>   
  2. #include<stdlib.h>   
  3. #include<string.h>   
  4.   
  5. int charinit(const char *p)   
  6. {   
  7.     char *q=p;   
  8.     int i=0;   
  9.     while(*q != '/0')   
  10.     {   
  11.         i+=*q-'0';   
  12.         q++;   
  13.     }   
  14.     return i;   
  15. }   
  16.   
  17. int root(int x)   
  18. {   
  19.     if(x<10)   
  20.         return x;   
  21.     else  
  22.     {   
  23.         int z=0;   
  24.         while(x>=10)   
  25.         {       
  26.             z=z+x%10;   
  27.             x/=10;   
  28.         }   
  29.         z+=x;   
  30.         root(z);   
  31.     }   
  32.   
  33. }   
  34.   
  35. int main()   
  36. {   
  37.     char *a=malloc(1024);   
  38.     int i,j;   
  39.     while(scanf("%s",a)!=EOF && strcmp(a,"0")!=0)   
  40.     {   
  41.         i=charinit(a);   
  42.         j=root(i);   
  43.         printf("%d/n",j);   
  44.     }   
  45.     return 0;   
  46. }   

 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值