• 中国剩余定理


    求解x ≡ b[](mod w[])中的x值

     1 #include <stdio.h>
     2 int ext_euclid(int a,int b,int &x,int &y)  //求gcd(a,b)=ax+by
     3 {
     4     int t,d;
     5     if (b==0) {x=1;y=0;return a;}
     6     d=ext_euclid(b,a %b,x,y);
     7     t=x;
     8     x=y;
     9     y=t-a/b*y;
    10     return d;
    11 }
    12 
    13 
    14 int China(int B[],int W[],int k)
    15 {
    16     int i;
    17     int d,x,y,a=0,m,n=1;
    18     for (i=0;i<k;i++)
    19         n*=W[i];
    20     for (i=0;i<k;i++)
    21     {
    22         m=n/W[i];
    23         d=ext_euclid(W[i],m,x,y);
    24         a=(a+y*m*B[i])%n;
    25     }
    26     if (a>0) return a;
    27     else return(a+n);
    28 }
    29 int main(){
    30     int len,B[100],W[100];
    31     scanf("%d",&len);
    32     for(int i = 0; i < len; i++)
    33         scanf("%d%d",&B[i],&W[i]);
    34     int ans = China(B,W,len);
    35     printf("%d
    ",ans);
    36     return 0;
    37 }
  • 相关阅读:
    java分解质因数
    GUID全局唯一标识符
    Oracle-教师信息表(Teacher)
    Oracle-成绩表(Score)
    Oracle-建表course
    Oracle-建表student
    输入输出-复制
    Map
    哈希
    链表
  • 原文地址:https://www.cnblogs.com/yfs123456/p/5535613.html
Copyright © 2020-2023  润新知