HDOJ 5832 A water problem(高精度 大数取模)

A water problem

Time Limit: 5000/2500 MS (Java/Others)????Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 826????Accepted Submission(s): 428

Problem Description

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

There is

73

HDOJ 5832 A water problem(高精度 大数取模)

days in Xixi a year and

137

HDOJ 5832 A water problem(高精度 大数取模)

days in Haha a year.

Now you know the days

N

HDOJ 5832 A water problem(高精度 大数取模)

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

HDOJ 5832 A water problem(高精度 大数取模)

huge test cases).

For each test,we have a line with an only integer

N(0≤N)

HDOJ 5832 A water problem(高精度 大数取模)

,the length of

N

HDOJ 5832 A water problem(高精度 大数取模)

is up to

10000000

HDOJ 5832 A water problem(高精度 大数取模)

.

?

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

2016中国大学生程序设计竞赛 - 网络选拔赛?

思路:

这道题的题意很清楚,就是让你求73和137的的公倍数。因为73和137的最小公倍数是10001,所以其实也就是求这个数能不能模10001余0。但是由于输入的数是10000000位的数,用long long来装是肯定不行的,所以考虑用高精度。套用一个大数取余的模板

就可以。这里选择手动大数取模。

代码:

#include<iostream>  
#include<string>  
#include<cstdio>  
int const maxn=10000000+5;  
char str[maxn];  
using namespace std;  
int main(){  
   //freopen("in.txt","r",stdin);  
    int t=0;  
    while(scanf("%s",str)!=EOF)  
    {  
        t++;  
        int i;  
        int rem=0;  
        for(i=0;str[i];i++){  
            rem=rem*10+str[i]-'0';  
            rem=rem%10001;  
        }  
        printf("Case #%d: ",t);  
        if(rem==0) printf("YES\n");  
        else printf("NO\n");  
    }  
}  

dawei

【声明】:天津站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。