当前位置:首页 > 题解目录 > 正文内容

【题解】大数取模

亿万年的星光3年前 (2023-01-07)题解目录19817

【题目描述】

求m%n。

【输入描述】

两个数,m和n。
【输出描述】

m模n的值。

【样例输入】

3

【样例输出】

2

【数据范围】

对于30%的数据, 1<m<10^18

对于70%的数据, m>10^18

【题目分析】

  • 题目描述非常简单,去m模n即可,但是从数据范围上看并不简单,题目的数据范围明显超过long long。所以,这个题目考虑用高精度的思想配合数论的知识进行求解

  • 使用高精度,用字符数组进行计算,那么转化用 a[i]-'0',所以数组的每一个a[i]只放一个数。

  • 用到了数论里的知识  (a+b)%p =(a%b + b%p) % p



假如1234是用高精度表示,那么这四个数字单独存在数组中,那么(1 2 3 4)%n  等价于 (1000 + 200+30+4)%n 

上面的知识我们拆分开就是:(1000 %n + 200 %n + 30%n +4 %n)%n。那么,基础代码就是 : ans*10+s[i]-'0'

 

【参考代码】

#include<bits/stdc++.h>
using namespace std;
int main() {
	int n;
	char m[1000];  
	cin>>m;
	cin>>n;
	int ans=0;
	for(int i=0; m[i]!='\0'; i++) {
		int temp=  (m[i]-'0');
		ans=((ans*10)%n  + temp %n)%n;
	}
	cout<<ans%n;
	return 0;
}


扫描二维码推送至手机访问。

版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

分享给朋友:

相关文章

【题解】亲戚

【题目描述】若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚。如果x,y是...

【题解】Best Cow Fences

【题目描述】    给定一个长度为n的正整数序列A。求一个平均数最大的,长度不小于L的子序列。【输入描述】第一行,n和L;n个正整数,表示A。【输出描述】&nb...

【题解】最小子序列

【题目描述】给你一个数组 nums,请你从中抽取一个子序列,满足该子序列的元素之和 严格 大于未包含在该子序列中的各元素之和。如果存在多个解决方案,只需返回 长...

【题解】放苹果(1)

【题目描述】把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。【输入】第一行是测试数据的数目t(0≤t≤20)。以下...

【题解】骨牌铺方格

【题解】骨牌铺方格

【题目描述】有1×n(n<=50)的一个长方形,用一个1×1、1×2和1×3的骨牌铺满方格,请问有多少种铺法?例如当n=3时为1×3的方格。此时用1×1、1×2和1×3的骨牌铺满方格,共有四种铺...

【题解】切割钢管

【题解】切割钢管

【题目描述】小A是某工地的计算工程师。工地现有 n 根钢管,第 i 根钢管的长度为 ai。现在想用这 n 根钢管来做一个支撑用的柱子。我么可以切割这些钢管成为更短的钢管,但是不能缝合两根钢管。为了安全...