1. 程式人生 > >ACM_18(同余)

ACM_18(同余)

logs 應該 64位 bit c代碼 com NPU 影響 不為

18

Time Limit: 2000/1000ms (Java/Others)

Problem Description:

一個簡單的問題,大家應該有不少做過大數加法題吧。這個題的數據也是64位整數放不下的,給定一個數,判斷該數是否能整除18.

Input:

輸入包含多組測試數據,對於每組數據,輸入一個整數(位數小於100,沒有前導零).

Output:

對於每組數據,如果可以整除18,輸出"Yes",否則輸出"No";

Sample Input:

18

Sample Output:

Yes
解題思路:同余知識點。這裏因為mod模為18,對每個字符-‘0‘後取余18沒有影響,所以省去了這一小步。
AC代碼:
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 char s[100];
 4 int main(){
 5     while(cin>>s){
 6         int sum=0;
 7         for(int i=0;i<(int)strlen(s);++i)
 8             sum=(sum*10+s[i]-0)%18;
 9         if(sum)cout<<"No"<<endl;//如果sum不為0,則為No
10         else cout<<"
Yes"<<endl; 11 } 12 return 0; 13 }
同知識點題目鏈接ACM_同余+暴力找規律

ACM_18(同余)