首页 > 其他 > 详细

【数论】2016中国大学生程序设计竞赛 - 网络选拔赛 A. A water problem (大整数取模)

时间:2018-04-14 21:40:58      阅读:249      评论:0      收藏:0      [点我收藏+]

链接:http://acm.hdu.edu.cn/showproblem.php?pid=5832

技术分享图片

技术分享图片


 题意:两个星球,一个星球一年只有137天,一个星球一年只有73天

输入N(爆炸后第N天),判断这是否为这两个星球的第一天

只要这个数是137与73的公倍数就好了(0比较特殊)

坑点:N的长度不超过10000000

只能用字符串来存储

大整数整除:紫书P314

大整数整除:首先把大整数写成“自左向右”的形式:1234 = (((1*10)+2)*10+3)*10+4

      然后每步取模

代码

1 char n[10000010];
2 int m;
3 scanf("%s %d",n,&m);   // n 存储大整数 
4 int len = strlen(n);
5 int ans = 0;
6 for(int i = 0;i < len;i++)
7      ans = (int)(((long long)ans*10+n[i]-0)%m);         
8 printf("%d\n",ans);

 

代码:

 1 #include <string>
 2 #include <cstdio>
 3 #include <iostream>
 4 
 5 using namespace std;
 6 
 7 const int m = 137*73;
 8 char n[10000010];
 9 int main()
10 {
11     int ca = 1;
12     while(~scanf("%s",n))
13     {
14         int ans = 0;
15         int len = strlen(n);
16         for(int i = 0;i < len;i++)
17             ans = (int)(((long long)ans*10+n[i]-0)%m);
18         if(ans == 0)
19             printf("Case #%d: YES\n",ca++);
20         else
21             printf("Case #%d: NO\n",ca++);
22     }
23     
24     return 0;
25 }

 

【数论】2016中国大学生程序设计竞赛 - 网络选拔赛 A. A water problem (大整数取模)

原文:https://www.cnblogs.com/duny31030/p/8835378.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!