zoukankan      html  css  js  c++  java
  • 解一元同余方程组

    2016.1.26

    试题描述

    给定n个一次同余方程x mod mi=ai,这里i=0,1,2,……,n-1,给定数据保证所有的mi两两互素。求该方程组的解。

    输入
    第一行包含一个正整数n,接下来的n行,每行包括两个整数,对应一个同余方程,第一个数为mi,第二个数为ai,两数间用一个空格分隔。
    输出
    一个数,表示方程组的解。
    输入示例
    3
    3 2
    5 3
    7 2
    输出示例
    23
    其他说明
    数据范围:所有给定的数据均在int32范围内,且保证所有的数据都符合题目描述的要求,结果在long long范围内。

    中国剩菜定理嘛ヾ(o◕∀◕)ノ

    #include<iostream>
    using namespace std;
    int m[101],a[101];
    
    void exgcd(int a,int b,int &x,int &y)
    {
        if(!b) 
        {
            x=1;
            y=0;
            return;
        }
        exgcd(b,a%b,y,x);
        y=y-a/b*x;
    }
    
    int main()
    {
        long long total=1,ans=0;
        int n;
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
        {
            scanf("%d%d",&m[i],&a[i]);
            total*=m[i];
        }
        for(int i=1;i<=n;i++)
        {
            int M=total/m[i];
            int x,y;
            exgcd(M,m[i],x,y);
            ans=(ans+a[i]*M*x)%total;
        }
        printf("%d",(ans+total)%total);
        
    }
    View Code
  • 相关阅读:
    Codewars Solution:Two to One
    Codewars Solution:Get the Middle Character
    golang jwt+token验证
    C#基础知识点梳理二
    C#基础知识点梳理一
    逻辑值
    step-1
    视频第5讲-ID转换
    通过向量访问矩阵
    跟着jmzeng学习GEO数据分析-GEO42872_1--题外
  • 原文地址:https://www.cnblogs.com/16er/p/5159609.html
Copyright © 2011-2022 走看看