- 题目大意
就是大数取余的题。
- 解题思路
利用同余定理(虽然刚开始我也不知道是什么,网上可以搜一下学习一下),最主要的关键式还是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;
}