正文

stu(1021)Z2005-08-30 20:12:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/elva6401/4268.html

分享到:

这题是汕头大学的1021道题:答案是: #include<stdio.h> #include<stdlib.h> int change() { char x;   int sum=0;   scanf("%c",&x);   if(x!='0')   { do   { sum=sum+x-48;     scanf("%c",&x);   }while(x>=48);   }   else     return(0);   return(sum); } int root(long x) { int sum=0;   while(x>9)   { sum=sum+x%10;     x=x/10;   }   return(sum+x); } int main() { int x;   x=change();   while(x)   {     do     { x=root(x);     }while(x>9);     printf("%d\n",x);     x=change();   } } 分析:1这题的思路很简单,就是把数相加,一般来说第一次加完都是只剩下两位数的了,但是那些试验        的数据有点BT,所以呢?在main语句最后一句时在调用一次change函数。       2change函数的作用就是实现把读进来的数进行相加,为了避免读入的数过大,还是使用了读字符        的方法,然后通过减掉48来变成它相应的整数。       3root函数的作用其实很明显了,应为经过第一次相加以后,剩下的一般来说都是两位数了,应此        root的作用就是实现两位数的十位和个位的相加。        4为了避免读入的数过大,在最后一句添加了,令一个change函数。

阅读(2987) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册