给定一个很大的整数,我想知道它能否被9整除。
输入
有t组测试数据,每组数据给定一个整数N不存在前导0。(1 <= t <= 20,1 <= N <= 10^200)。
输出
对每组测试数据,若N可以被9整除,输出1,反之输出0。
样例输入
3
111111111111111111111111111111
6666666666666666
9999999999999999999999999999
样例输出
0
0
1
#include<cstdio>
#include<cstring>
#include<cmath>
#include<stack>
#include<queue>
#include<algorithm>
using namespace std;
#define INF 0x3f3f3f3f
#define ll long long
int main(){
int t;
scanf("%d",&t);
char an[220];
int b[220];
while (t--){
memset(an,0,sizeof(an));
memset(b,0,sizeof(b));
scanf("%s",an);
int len;
len = strlen(an);
for (int i= 0; i < len; ++i){
b[i] = an[i]-'0';
}
int temp = 0;
int i;
for ( i = len-1; i >= 0; --i){
temp = (temp*10%9 + b[i]%9)%9;
}
if (temp == 0)
printf("1\n");
else printf("0\n");
}
return 0;
}
同余定理 写成这样的形式也可以temp = (temp*10 + b[i])%9
一开始–i写成++i 愣是半天没发现 感觉和心态写有些关系 code也要更加认真 多练