(大数取余)Large Division

题意:
给你两个数a,b,让你求出来a是否能够被b整除。
题解:大数取余
当一个数很大时,大到long long int类型都存放不了的时候,我们该怎么办呢?首先我们举个简单的例子来了解该算法的思想:
假设有一个数443,我们要求443%3,不妨拿起笔和纸和我一起演算一下。

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
char a[30000];
ll b,s;

int main()
{
   
	int t,cnt=0;
	scanf("%d", &t);
	while(t--) {
   
		s=0;
		scanf("%s%lld",a,&b);
		if(b<0) {
   
			b=-b;
		}
		for(int i=0; i<strlen(a);i++) {
   
			if(a[i]=='-') continue;
			
			s=(s*10+a[i]-'0')%b;
		}
		if(s==0) {
   
			printf("Case %d: divisible\n",++cnt);
		}
		else {
   
			printf("Case %d: not divisible\n",++cnt);
		}
	}
	return 0; 
}
全部评论

相关推荐

在看牛客的社畜很积极:身高体重那一行信息去掉,学校那一行的信息放上面,找半天都没找到你是哪个学校什么专业的
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务