题解:如果这个数能%73=0和%137=0,就输出YES。否则NO
#include <iostream> #include <cstdio> #include <cmath> #include <cstring> #include <algorithm> #define LL long long int const MAX = 10000010; int const INF = 1 << 30; double const EPS = 0.00000001; using namespace std; char a[MAX]; int ans1,ans2,cnt = 0,len,mod1 = 73,mod2 = 137; int main(){ while (scanf("%s",a) == 1){ cnt++; len = strlen(a); ans1 = ans2 = 0; for (int i = 0; i < len; i++){ ans1 = (ans1 * 10 + a[i] - '0') % mod1; ans2 = (ans2 * 10 + a[i] - '0') % mod2; } //如果两个余数都是0输出YES printf("Case #%d: %s\n",cnt,(!ans1 && !ans2) ? "YES" : "NO"); } return 0; }
这样写会稍微慢一点
#include <iostream> #include <cstdio> #include <cmath> #include <cstring> #include <algorithm> #define LL long long int const MAX = 10000010; int const INF = 1 << 30; double const EPS = 0.00000001; using namespace std; char a[MAX]; int ans1,mod2 = 137,t; int main(){ while (scanf("%s",a) == 1){ cnt++; len = strlen(a); ans1 = ans2 = 0; for (int i = 0; i < len; i++){ ans1 = (ans1 * 10 + a[i] - '0'); ans2 = (ans2 * 10 + a[i] - '0'); if (ans1 >= mod1) ans1 = ans1 % mod1; if (ans2 >= mod2) ans2 = ans2 % mod2; } //如果两个余数都是0输出YES printf("Case #%d: %s\n",(!ans1 && !ans2) ? "YES" : "NO"); } return 0; }
HDU 1212 Big Number(C++ 大数取模)(java 大数类运用)
#include <iostream> #include <cstdio> #include <cmath> #include <cstring> #include <algorithm> #define LL long long int const MAX = 1010; int const INF = 1 << 30; double const EPS = 0.00000001; using namespace std; char a[MAX]; int b,ans,len; int main(){ while (scanf("%s %d",a,&b) == 2){ ans = 0; len = strlen(a); for (int i = 0; i < len; i++) ans = (ans * 10 + a[i] - '0') % b; printf("%d\n",ans); } return 0; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。