C语言编程练习28:大数取模
题目描述
现给你两个正整数A和B,请你计算A mod B。
为了使问题简单,保证B小于100000。
为了使问题简单,保证B小于100000。
输入
输入包含多组测试数据。每行输入包含两个正整数A和B。A的长度不超过1000,并且0<B<100000。
输出
对于每一个测试样例,输出A mod B。
样例输入 Copy
2 3
12 7
152455856554521 3250
样例输出 Copy
2
5
1521
思路:就是对大数的每一位取模,再相加。
有公式
(a + b) % m = (a % m + b % m) % m
参考:https://blog.csdn.net/qq_38192377/article/details/90212284
#include <stdio.h> #include <iostream> #include <cstring> #include <algorithm> #include <cmath> #include<cstdio> using namespace std; int main() { int n; char s[1005]; while(scanf("%s %d",s,&n)!=EOF) { int l = strlen(s); int m = 0; for(int i=0;i<l;i++) { m = (m*10+(s[i]-'0'))%n; } printf("%d\n",m); } return 0; }