- 题目大意
就是大数取余的题。
- 解题思路
利用同余定理(虽然刚开始我也不知道是什么,网上可以搜一下学习一下),最主要的关键式还是num = (num * 10 + s[i] - '0') % b,(注意i是从0开始)记住这个就行。
- 代码
#include <cstdio> #include <iostream> #include <algorithm> #include<cstring> using namespace std; #define maxn 100000 int cas = 1, T; char s[maxn]; int main() { cin >> T; while (T--) { long long b; cin >> s >> b; if (b<0) b = -b; int len = strlen(s); long long num = 0; for (int i = 0; i<len; i++) { if (s[i] == '-') continue; num = (num * 10 + s[i] - '0') % b; } printf("Case %d: ", cas++); if (!num) printf("divisible "); else printf("not divisible "); } return 0; }