G

- 题目大意

     就是大数取余的题。

- 解题思路

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

  

原文地址:https://www.cnblogs.com/alpacadh/p/8431481.html