C语言编程练习28:大数取模

题目描述

现给你两个正整数A和B,请你计算A mod B。
为了使问题简单,保证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
",m);
	}
	
	return 0;
}
 
原文地址:https://www.cnblogs.com/FantasticDoubleFish/p/14320720.html