hdu 1013 Digital Roots
2013-02-18 18:30
399 查看
root是一个个位数
一:常规做法
//大神的东西,我还是不知道为什么对9取余就可以了
//快捷算法
//算法思想:
//一个数 模9等于各位数字和模9,例如 33%9=6%9;
//证明: a1a2a3...an%9=((a1*10^n-1)%9+(a2*10^n-2)%9...)%9
//右边 a1*(9999..9+1)%9=a1%9,以此类推、、、、
一:常规做法
#include<iostream> #include<string> using namespace std; char c[1002]; int A(int s) { int sum = 0; while(s) { sum += s % 10; s /= 10; } return sum; } int main() { while( gets(c) != NULL ) { if(c[0] == '0') break; int i, s = 0; for(i = 0; c[i] != '\0'; i++) s += c[i] - '0'; while(s > 9) s = A(s); printf( "%d\n", s); } return 0; }
//大神的东西,我还是不知道为什么对9取余就可以了
//快捷算法
//算法思想:
//一个数 模9等于各位数字和模9,例如 33%9=6%9;
//证明: a1a2a3...an%9=((a1*10^n-1)%9+(a2*10^n-2)%9...)%9
//右边 a1*(9999..9+1)%9=a1%9,以此类推、、、、
#include<iostream> #include<string> using namespace std; char c[1002]; int main() { while( gets(c) != NULL, c[0] != '0') { int s = 0; for(int i = 0; c[i] != 0; i++ ) s += c[i] - '0', s = s % 9; if(s == 0) s = 9; printf("%d\n", s); } return 0; }
相关文章推荐
- 【模9】digital roots[hdu 1013]
- HDU 1013 Digital Roots
- HDU-1013-Digital Roots
- Hdu 1013 Digital Roots
- HDU 1013 Digital Roots
- HDU 1013 Digital Roots
- HDU 1013 Digital Roots
- HDU 1013 Digital Roots
- HDU-1013-Digital Roots
- hdu 1013 Digital Roots【数根计算 余九解法】
- HDU 1013 Digital Roots
- HDU-#1013 Digital Roots(九余数定理)
- hdu 1013 Digital Roots (九余数定理)
- HDU-1013 Digital Roots(水)
- HDU 1013 Digital Roots (无限大数)
- HDU-1013 Digital Roots
- hdu_1013_Digital Roots(模拟)
- HDU 1013 Digital Roots
- hdu-1013-Digital Roots
- HDOJ HDU 1013 Digital Roots