大数求余

来源:互联网 发布:淘宝怎么隐藏待收货 编辑:程序博客网 时间:2024/05/22 10:34


关于求余,我们有以下的运算性质:

1.(a+b)% n = (a%n+b%n)% n;

2.(a-b)% n = (a%n-b%n )% n;

3,(a×b)% n = (a%n×b%n)% n;

4. ( a^b ) % n = ((a%n)^b) % n;  4 可由 3 简单推出。

所以对于大数

12345 % 7 = (((((1×10)% 7 +2%7)%7×10%7+3%7)%7×10%7+4%7)%7×10%7+5%7)%7;

代码如下:


#include <stdio.h>#include <math.h>int Mod (char s[],int n){int m = 0;for (int i=0;s[i]!='\0';i++)m=((m*10)%n+(s[i]-'0')%n)%n;return m;}int main (){int n;char s[1000];while (~scanf ("%s%d",s,&n)){int ans = Mod (s,n);printf ("%d\n",ans);}return 0;}


0 0
原创粉丝点击