整理几个公式:
(a+b) mod n = ((a mod n)+(b modn))modn
(a-b)mod n = ((a mod n)-(b mod
n)+n)mod n
ab mod n = (a mod n)(b mod n)mod n
注意在减法中,由于a mod n可能小于b mod n,需要在结果加上n
;而在乘法中需要注意a mod n和b mod n相乘是否会溢出。
例题:输入大整数n和m,输出n mod m的值,其中n<=10^100,m<=10^9。
把大整数写成”自左向右“的形式:如1234 = ((1*10+2)*10+3)*10+4.
#include
#include
const int N = 110;
int main()
{
char n[N];
int m;
scanf("%s %d", n, &m);
int len = strlen(n);
int ans = 0;
for(int i=0; i