这题是汕头大学的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函数。
正文
stu(1021)Z2005-08-30 20:12:00
【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/elva6401/4268.html
阅读(2856) | 评论(0)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论