您的位置:首页 > 其它

hdu

2016-01-27 00:57 239 查看
这题只是用到两个简单的数论知识,

①n的数根 = (n-1)%9+1;

② n%9 = n各个位之和 %9 : 135%9 = (1 + 3 + 5)%9

要注意输入有大数,所以用字符数组处理

#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <map>
#include <algorithm>
#include <cmath>
#include <iomanip>
#include <vector>
#include <stack>
#include <cstdlib>
#include <queue>
#include <set>
#include <cctype>
using namespace std;
#define  loop(i,u,v) for(int i = u;i <= v;i++)
#define rloop(i,u,v) for(int i = u;i >= v;i--)
#define eps  0.00000001
typedef long long ll;

int main()
{
ll sum;
char a[1005];
while(cin >> a && a[0] != '0')
{
sum = 0;
loop(i,0,strlen(a)-1)
sum += a[i] - '0';
cout << (sum-1)%9 + 1 << endl;
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: