給定一個(gè)很大的整數(shù),我想知道它能否被9整除。
輸入 有t組測試數(shù)據(jù),每組數(shù)據(jù)給定一個(gè)整數(shù)N不存在前導(dǎo)0。(1 <= t <= 20,1 <= N <= 10^200)。
輸出 對(duì)每組測試數(shù)據(jù),若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 longint 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) 同余定理 寫成這樣的形式也可以temp = (temp*10 + b[i])%9 一開始–i寫成++i 愣是半天沒發(fā)現(xiàn) 感覺和心態(tài)寫有些關(guān)系 code也要更加認(rèn)真 多練 新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注