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;
}
思路:一位一位的读入。
#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;
}
相关文章推荐
- HDU 1013 Digital Roots 大数 水题
- hdu 1013 Digital Roots 没注意细节,是1A不了水题的
- HDU 1013 Digital Roots 大数水题
- HDU1013_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(两种方法,求数字根)
- 【模9】digital roots[hdu 1013]
- HDU_1013 Digital Roots
- hdu_1013_Digital Roots_必须用高精度
- HDU 1013 Digital Roots