这题的技巧是:能被3整除的自然数各位的和能被3整除,9也同理。
再也不把strlen放进循环里了。这次放进去直接超时了我去。
附ac代码:
#include <stdio.h>
#include <string.h>
#define MAX 1000000 + 2
char s[MAX];
int main(){
int t, sum;
scanf("%d", &t);
while(t-- && scanf("%s", s)){
sum = 0;
int len = strlen(s);
for(int i = 0; i != len; ++i)
sum += s[i] - '0';
printf("%d\n", sum % 9);
}
return 0;
}
原超时代码
#include <stdio.h>
#include <string.h>
#define MAX 1000000 + 2
char s[MAX];
int main(){
int t, sum;
scanf("%d", &t);
while(t-- && scanf("%s", s)){
sum = 0;
for(int i = 0; i != strlen(s); ++i) //教训...%>_<%
sum += s[i] - '0';
printf("%d\n", sum % 9);
}
return 0;
}