HDU1013-简单的数论

来源:互联网 发布:mac桌面日历软件 编辑:程序博客网 时间:2024/04/27 20:46

题意:

就是把数的每个位数相加,看是否小于10,是就输出,否则继续。

分析:

本题不难,让我们做了是为了让我们知道一个结论。一个数(n)的树根k=(n-1)%9-1;

知道这个这题就是水题了。

不知道也没什么关系,也可以水过。(输入的数可能很大)

知道就这个代码:

#include<stdio.h>#include<string.h>int main(){    char st[1005];     int r,len;     while(scanf("%s",st)&&st[0]!='0'){            r=0;            len=strlen(st);            for(int i=0;i<len;i++)               r+=st[i]-'0';            printf("%d\n",(r-1)%9-1);       }      return 0;}

不知的就这个代码:

#include<stdio.h>#include<string.h>int root(int n){int r=0;while(n>0){r+=n%10;n/=10;}if(r>9) root(r); else return r;}int main(){char st[1005];int n,len;while(scanf("%s",st)&&st[0]!='0'){         n=0; len=strlen(st); for(int i=0;i<len;i++)  n+=st[i]-'0'; printf("%d\n",root(n));}return 0; } 


原创粉丝点击