小记:这题,咋一看,真简单,各位数字相加求和,减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; }