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

【题解】大数取模

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

【题目描述】

求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;
}


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

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

分享给朋友:

相关文章

【题解】摘花生问题

【题解】摘花生问题

【题目描述】Hello Kitty想摘点花生送给她喜欢的米老鼠。她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来。地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经过...

【题解】滑翔翼

【题目描述】小T和小K都是OIER,入选省队后有幸去苏州参加JSOI集训,训练之余,他们相约一起去苏州乐园玩。苏州乐园里有一个非常热门的游乐项目叫双人滑翔翼。小T想和小K一起乘双人滑翔翼,但是排在他们...

【题解】开花

【题解】开花

【题目描述】小A所在的学校又迎来了一年一度的开花活动,有 n 名学生被评为文学优秀奖,m 名学生被评为体育优秀奖。现已知两个奖项获奖同学的编号,每个同学都有唯一的编号。只有同时被评为文学优秀奖和体育优...

分数求和

题目描述】输入n个分数并对他们求和,并用最简形式表示。所谓最简形式是指:分子分母的最大公约数为1;若最终结果的分母为1,则直接用整数表示。如: 5/6  、 10/3  均是最简形...

【题解】钟神赛车

【题目描述】钟神近来编码劳累,想骑车风光一番,于是找某君骑自行车比赛。已知某君和钟神的每辆自行车的速度,钟神赢一场得50银两银子,输一场赔50银两,平局不挣也不赔。钟神可以随意安排高中低档自行车的出场...

亲和数

【题目描述】自然数a的因子是指能整除a的所有自然数,但不含a本身。例如12的因子为:1,2,3,4,6。若自然数a的因子之和为b,而且b的因子之和又等于a,则称a,b为一对“亲和数” 。求最小的一对亲...