11.10 作業 Problem H: 能被3整除嗎?
阿新 • • 發佈:2019-01-25
Description
眾所周知,一個正整數N能夠被3整除當且僅當N的各位數字之和能夠被3整除。如123的各位數字之和是6,而6%3=0,所以123能夠被3整除。現在有若干個正整數,需要程式設計來判斷這些數是否能被3整除。
Input
輸入有多行。第一行是M>0,表示之後有M個正整數需要判斷。
之後有M行,每行是一個正整數N,N<=10100,也就是說,N不超過100位十進位制數字。
Output
輸出有M行。每一行輸出與上述每一行輸入一一對應。
如果對應的正整數能夠被3整除,則輸出“Yes”,否則輸出“No”。
Sample Input
66734711123323111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111134518446744073709551615Sample Output
YesNoNoNoYesYesHINT
N太大了,超出了所有整數型別所能儲存的最大範圍,只能考慮使用字串把N儲存下來,逐位處理了。
思路:
同二進位制轉十進位制那道題。
程式碼:
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int m,i,j,k,s,sum; char str[100000]; scanf("%d",&m); getchar(); for(i=1; i<=m; i++) { sum=0; gets(str); for(k=0; k<strlen(str); k++) { sum += (str[k]-48); } if(sum%3==0) { printf("Yes\n"); } else { printf("No\n"); } } return 0; }