A water problem

Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 342    Accepted Submission(s): 187


Problem Description
Two planets named Haha and Xixi in the universe and they were created with the universe beginning.

There is 73 days in Xixi a year and 137 days in Haha a year.

Now you know the days N after Big Bang, you need to answer whether it is the first day in a year about the two planets.
 

 

Input
There are several test cases(about 5 huge test cases).

For each test, we have a line with an only integer N(0N) , the length of N is up to 10000000 .
 

 

Output
For the i-th test case, output Case #i: , then output "YES" or "NO" for the answer.
 

 

Sample Input
10001 0 333
 

 

Sample Output
Case #1: YES Case #2: YES Case #3: NO
 

 

Author
UESTC
 

 

Source
 

 

Recommend
wange2014   |   We have carefully selected several similar problems for you:   5842  5841  5840  5839  5838 
 
 
解题思路:判断输入的数能否被10001整除,因为10001是73和137的最小公倍数。
  只要模拟除法,看最后的余数就可以。
  因为判断位数太多,所以也不能用java大数做,不然会内存超限。
  感觉之前做题给做傻了,一见到大数就想用java,一看别人说的题意就理解了,但自己看就是看不懂题意。
代码:
 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 
 5 using namespace std;
 6 
 7 char s[10000005];
 8 
 9 int main()
10 {
11     int z=1;
12     int ans=0;
13     int d=10001;
14     int len;
15     while(scanf("%s",s)!=EOF){
16         ans=0;
17         len=strlen(s);
18         for(int i=0;i<len;i++){
19             ans=((ans*10+(s[i]-'0'))%d)%d;
20         }
21         if(ans==0){
22             printf("Case #%d: YES\n",z++);
23         }else{
24             printf("Case #%d: NO\n",z++);
25         }
26     }
27     return 0;
28 }