1. 程式人生 > >hdu1212(同餘定理)

hdu1212(同餘定理)

同餘定理:(a+b)%c = (a%c + b % c) % c,(a*b)%c = (a%c * b%c) % c

例如:353%3 = (300 % 3 + 50 % 3 + 3 % 3) % 3 = 2

貼出程式碼:

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string str;
    int m;
    while (cin >> str >> m)
    {
        int ans = 0;
        for (int i= 0; i < str.size(); i++)
        {
            ans = (ans * 10 + (str[i]-'0') % m) % m;
        }
        cout << ans << endl;
    }
    return 0;
}

相關推薦

hdu1212定理

同餘定理:(a+b)%c = (a%c + b % c) % c,(a*b)%c = (a%c * b%c) % c 例如:353%3 = (300 % 3 + 50 % 3 + 3 % 3) % 3 = 2 貼出程式碼: #include <iostream

的特點+定理

1.加法乘法和取模沒有順序 2.如果兩個數對m取餘相等。那麼這兩個數相減後,該數被m整除。 公式: (a + b) % n = ((a % n )  + (b % n)) % n ab % n = (a % n) (b % n) % n 大整數取模 1234 = ((1*1

hdu1212 Big Number &第六屆山東省賽Single Round Math 定理,大數取模

題目大意:每次輸入兩個數,第一個是高精度,第二個數小於100000;求 a mod b 根據同餘定理: (a+b)% c = (a%c+ b%c)%c (a*b)%c =  ( a%c* b%c)%

數數 數學快速冪+定理

數數 【問題描述】 小 Star 還不會數數。有一天他看到了一張奇怪的數表,上面的每一個數各自都由相同數字構成,比如“11111111”“66666” 。於是他想自己從 1 慢慢數到這個數字。多少 Star 有個很不好的習慣,每數到一定個數就會從頭開始數

四兩撥千斤,GCC編譯器

對於兩個數M和N,如果M%P == N%P,則可以說M和N對P同餘。記作公式: M≡N(modP) 同餘這一屬性看起來簡單,然而卻是數論中極為重要的概念。與之相關的公式和定理更是紛繁蕪雜,如果不是數學背景的童鞋,恐怕很難深入去鑽研所有的知識。 我們這一篇作為一個簡單

POJ 1995 Raising Modulo Numbers (快速冪 +定理

Raising Modulo Numbers Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 6444 Accepted: 3794 Description People are differ

定理歐幾里得演算法

如果  (a-b)%m==0  那麼 a%m==0  b%m==0 a,b關於模m同餘。   求最大公約數 #include "pch.h" #include<iostream> #include<cstdio> #include<

4704費馬小定理定理 ,求超高次冪

Input 2 Output 2 Hint 1. For N = 2, S(1) = S(2) = 1.2. The input file consists of multiple test cases. Sample Input

定理與費馬Fermat定理

1 同餘定理定義 如果兩個整數a和b,(a-b)能被m整除,則a和b被m除的餘數相同,記做 如果有,則 2 同餘定理證明 充分性: 假定(其中r1和r1小於m,h1和h2為整數) a = h1*m+r1 b = h2*m+r2 則a-b = (h1-h2)*m

POJ 1426 Find The Multiple數論——中國定理

定義 十進制 pro desc decimal tput one return solution 題目鏈接: http://poj.org/problem?id=1426 Description Given a positive integer n, write a pro

落谷 P3403 跳樓機最短路

這道題和裸的同餘最短路思路是相同的,對於演算法的介紹請轉至蒟蒻(我)的另一篇題解: https://blog.csdn.net/zzk_233/article/details/83419118 但是這道題有一些不同,起點是1,所以跑最短路的時候要把1先推入佇列, 而且dis[1]=1

bzoj 2118: 墨墨的等式最短路

題目大意:墨墨突然對等式很感興趣,他正在研究a1x1+a2y2+…+anxn=B存在非負整數解的條件,他要求你編寫一個程式, 給定N、{an}、以及B的取值範圍,求出有多少B可以使等式存在非負整數解。 這種題的主要思路就是,找到所有的最小值x,而滿足條件的所有取值mod x就在0~x-1

HDU 6071 Lazy Running最短路

簡述題意:給你一個由四個節點組成的環,相鄰兩點間可達,求從節點2出發,回到節點2的不小於k的最短路徑的長度。 演算法:同餘最短路 難度:NOIP 題解: 假設我們將任意一條長度大於k的迴路(從2出發回到2)為可行路徑,那麼任意一條可行路徑加上2w一定還是可行路徑,所有可行方案中,

【POJ】1465MultipleBFS+剪枝

Time Limit: 1000MS   Memory Limit: 32768K Total Submissions: 8365   Accepted:&nb

定理的應用處理大數

       今天要不是吃鯨群裡有人提問,我之前不知道還有這個定理,想想都後怕。。。果然我已經沒有希望了嗎? 同餘定理 定義 設m是大於1的正整數,a、b是整數,如果(a-b)|m,則稱a與b關於模m同餘,記作a≡b(mod m),讀作a與b對模m同

poj 1061青蛙的約會擴充套件歐幾里得+方程

兩隻青蛙在網上相識了,它們聊得很開心,於是覺得很有必要見一面。它們很高興地發現它們住在同一條緯度線上,於是它們約定各自朝西跳,直到碰面為止。可是它們出發之前忘記了一件很重要的事情,既沒有問清楚對方的特徵,也沒有約定見面的具體位置。不過青蛙們都是很樂觀的,它們覺得只要一直朝

方程

#include<bits/stdc++.h> using namespace std; typedef long long ll; ll exgcd(ll a, ll b, ll &x, ll &y) { if(b == 0)

HDU 2035 人見人愛A^B基本性質

原題連結:Here!思路:可以利用同餘的基本性質 ab ≡ (a%m)(b%m) (mod m) ,也非常好證明。  設 a = k1*m + c1 , b = k2*m + c2 ( k1,k2

POJ 2115 for求迴圈次數-數論-方程+擴充套件歐幾里得演算法

題意:給定for迴圈的初始值,結束值和增量,還有一個模,求最少的迴圈次數。 分析: 讀完題後應該就知道是一個同餘的概念,所以就是解一個一元一次同餘方程,像上題一樣用擴充套件歐幾里得演算法。這題的trick點是k最大為32,那麼2^32超出了int,要用long long,所

大小步方程的解

大小步BigStepGiantStep演算法求 A^x = B( mod P ) (注:P為質數)中x的解 //來自kuangbin的ACM模板 #include <stdio.h> #