HDU1013-Digital Roots-数论(树根)
2015-09-01 11:16
267 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1013
题意:
就是把数的每个位数相加,看是否小于10,是就输出,否则继续。
分析:
本题不难,让我们做了是为了让我们知道一个结论。一个数(n)的树根k=(n-1)%9-1;
知道这个这题就是水题了。
不知道也没什么关系,也可以水过。(输入的数可能很大)
数论代码:
普通代码:
题意:
就是把数的每个位数相加,看是否小于10,是就输出,否则继续。
分析:
本题不难,让我们做了是为了让我们知道一个结论。一个数(n)的树根k=(n-1)%9-1;
知道这个这题就是水题了。
不知道也没什么关系,也可以水过。(输入的数可能很大)
数论代码:
#include<iostream> #include<cstdio> #include<string> #include<cstring> using namespace std; int main() { char s[1005]; while(scanf("%s",s)&&s[0]!='0'){ int n=0; for(int i=0;i<strlen(s);i++) n+=s[i]-'0'; printf("%d\n",(n-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; }
#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; }
相关文章推荐
- TelephoneBook-main包-Telephone类
- HDU——2141 Can you find it?
- nRF51 DK : nRF51822 Development Kit for Bluetooth Smart, ANT and 2.4GHz applications.
- 你真的理解大数据吗?
- brew
- POJ 1904 King's Quest
- Wordpress安装
- java.lang.NoClassDefFoundError: Lorg/apache/tomcat/InstanceManage Tomcat异常处理
- 数据库设计(8)-视图集成
- rust泛型过度使用思考
- Apache CXF + Spring3 + REST + JSON配置
- mysql索引详解(转)
- 自己遇到的 导航控制器 push了好几层 让他一次返回到前面的指定页面 不一定是根页面
- 转。。原理同样支持 delphi
- 【总结】C/C++输入输出不完全总结(待续)
- jjs 产生undefined的情况
- 将MyEclipse中的tomcat的端口改为80
- 景深效果的原理
- hibernate
- 下拉框自动填充文本框