HDU1013 考虑数论

其实昨晚就在做这题了,早上起来的太晚,然后刚刚提交。

此题其实一开始是想很直白的按照题目意思来操作,后期发现这样太麻烦了,而且如果拿纸笔写出来会发现其实是1-9循环的~~每次增加1,那么层层迭代下来,最终当ans<10的时候也是每次增加了1。如此,可以归纳出
roots=(n-1)%9+1

 

源码:

 1 #include <stdio.h>
 2 #include <math.h>
 3 #include <string.h>
 4 
 5 int main(){
 6     char a[1003];
 7     int i , sum;
 8 
 9     while((scanf("%s",a) != EOF) && (a[0] != '0')){
10         sum = 0;
11         for(i = 0; i < strlen(a); i++){
12             sum += a[i] - 48;
13         }
14         printf("%d\n",(sum - 1) % 9 + 1);
15     }
16     return 0;
17 }

 

posted @ 2013-07-31 10:14  ShirleySweet  阅读(128)  评论(0编辑  收藏  举报