当前位置: 代码迷 >> 综合 >> 杭电1013 Digital Roots(九余数定理)
  详细解决方案

杭电1013 Digital Roots(九余数定理)

热度:44   发布时间:2024-01-18 18:48:57.0

杭电1013 http://acm.hdu.edu.cn/showproblem.php?pid=1013

 

题目大意:

所谓数根。即数字各个位置之和。

若和大于10,则需要再次求和,直到小于10.

 

AC代码:

#include <iostream>
#include <cstring>
#include <algorithm>
#include <memory.h>
#include <cmath>
#include <stack>
//#define DEBUG
using namespace std;
typedef long long ll;
char a[10000]; //为了防止超范围
int main() {while(cin>>a) {if(a[0]=='0') return 0;int len=strlen(a);int sum=0;for(int i=0;i<len;i++) {sum+=a[i]-'0';}if(sum<=9) cout<<sum<<endl;else cout<<sum%9<<endl<<(sum-1)%9+1<<endl;  //“九余数定理”?}return 0;
}