时间限制: 1 Sec 内存限制: 128 MB
给定一个很大的整数,我想知道它能否被9整除。
有t组测试数据,每组数据给定一个整数N不存在前导0。(1 <= t <= 20,1 <= N <= 10^200)。
对每组测试数据,若N可以被9整除,输出1,反之输出0。
,其实也是在除法运算中的核心思想,某一位数字乘以10加上后面的一位数字,再对除数取余,余数再进行此过程。
代码#include<cstdio> #include<cstring> #define N 1000 char s[N]; int main() { int t,l; long long sum; scanf("%d",&t); while(t--) { sum=0; scanf("%s",s); l=strlen(s); for(int i=0;i<l;i++) sum+=s[i]-'0';//各位数字相加能够整除,那么该数也能够整除 if(sum%9==0) printf("1\n"); else printf("0\n"); } return 0; }
#include<cstdio> #include<cstring> #define N 1000 char s[N]; int main() { int t,l,flag; scanf("%d",&t); while(t--) { scanf("%s",s); l=strlen(s); flag=(s[0]-'0')%9; for(int i=1;i<l;i++) { flag=(flag*10+s[i]-'0')%9;//同余定理,很厉害的思路 } if(flag==0) printf("1\n"); else printf("0\n"); } return 0; }