您的位置:首页 > 其它

hdu 1013 Digital Roots(水题)

2014-04-01 19:01 417 查看
小记:这题,咋一看,真简单,各位数字相加求和,减1对9取余再加一 就是answer。 最开始用int 直接提交,WA,好,想了一下,数字肯定蛮大,long long,提交,WA,尼玛,这是大数据的节奏啊。 getchar一个一个的读。好。AC!

思路:一位一位的读入。

#include <iostream>
#include <cstdio>
using namespace std;

int p[] = {9,1,2,3,4,5,6,7,8};

int main(){
int n,sum;

while(1){
//scanf("%1d",&n);
bool flag = 0;
char c;
int sum = 0;
c = getchar();
if(c == '0')break;
sum += c - '0';
while((c = getchar()) != '\n'){
if(!flag){
if(c == '\n')continue;
flag = 1;
}
sum += c - '0';
}
//if(flag)break;

cout<<p[sum%9]<<endl;
}
return 0;
}


高效AC码,仅供参考:

#include<stdio.h>
int main()
{
int a,c;
for(;scanf("%1d",&a),a>0;printf("%d\n",--a%9u+1))
while((c=getchar())-48u<10)
a+=c-48;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: