大數取模 (模板)——HDU 5832
分析:
給出一個長度最大為10000000的數字,判斷它模137和模73是否都餘0。題解:
直接套用大數取模:
針對數字位數超過最大整數範圍限制的數進行取模操作,每次對一位取模
根據 (ab)%mod=(a%mod)*(b%mod);把大數換為字串處理,之後對每一位數字進行取模大數取模模板:
while(scanf("%s", num) != EOF)//輸入大數
{
int len = strlen(num);
long long ans = 0;
for(int i = 0; i < len; ++i)
{
ans = ans*10 + (num[i]-'0' );
ans %= MODZ;
}
}
- AC 程式碼:
/*************************************************************************
> File Name: 1001.cpp
> Author: Akira
> Mail: [email protected]
> Created Time: 2016年08月14日 星期日 12時01分36秒
************************************************************************/
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cstdlib>
#include <algorithm>
#include <queue>
#include <stack>
#include <map>
#include <cmath>
#include <vector>
#include <set>
#include <list>
typedef long long LL;
typedef unsigned long long ULL;
typedef long double LD;
#define MST(a,b) memset(a,b,sizeof(a))
#define CLR(a) MST(a,0)
#define Sqr(a) ((a)*(a))
using namespace std;
#define MaxN 100000
#define MaxM MaxN*10
#define INF 1000000000
#define bug cout<<88888888<<endl;
char str[11234567];
int main()
{
int mod = 73*137;
int t = 1;
while(~scanf("%s", str))
{
int len = strlen(str);
LL a= 0;
for(int i=0;i<len;i++)
{
a = a*10 + (str[i]-'0');
a %= mod;
}
if(a ==0)
{
printf("Case #%d: YES\n", t++);
}
else
{
printf("Case #%d: NO\n", t++);
}
}
return 0;
}
相關推薦
大數取模 (模板)——HDU 5832
分析: 給出一個長度最大為10000000的數字,判斷它模137和模73是否都餘0。 題解: 直接套用大數取模: 針對數字位數超過最大整數範圍限制的數進行取模操作,每次對一位取模 根據 (a
大數取模 模板
對於一些基本運算的大數取模: 加法 (a+b)%n=(a%n+b%n)%n 減法 (a-b)%n=(a%n-b%n+n)%n //為什麼要加n,由於a%n可能小於b%n,所以加n保證為正整數 乘法 a*b%n=(a%n*b%
大數取模 HDU 5832
int mod(char str[],int num) { int remainder=0; int len = strlen(str); for(int i=0;i<
hdu 4704 Sum(隔板+費馬小定理·大數取模)
Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 1907 Accepted Submis
hdu(1212)大數取模
借鑑別人的思路; 用遞推的思想,就可以總結出下面的公式; 舉例: 12345 9 餘數等於(12340%9+5%9)%9; 而12340 9 (12300%9+40%9)%9; 依次... 最後(10000%9+2000%9)%9; 而10000%9=(1%9*10000)
大數斐波那契取模模板
大數斐波那契取模: #include <cstdio> #include <cstring> #include <iostream> using namespace std; const int mod=19999997; typedef
HDU-大數取模-最多100000位
問題及程式碼:/* *Copyright (c)2014,煙臺大學計算機與控制工程學院 *All rights reserved. *檔名稱:mod.cpp *作 者:單昕昕 *完成日
hdu 1212_大數取模
#include <stdio.h> #include<string.h> #include <stdlib.h> #define N 50000 char s[N]; int main() { int i,mod,j,m;
(大數取模)Big Number hdu1212
cep bmi asn each one sed alt ner 100% Big Number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota
POJ 1426 Find The Multiple(大數取模)【DFS】||【BFS】
++ printf true pty ace bfs 還要 ems 兩種 <題目鏈接> 題目大意: 給一個小於200的正整數n,問只有0和1組成的位數小於100的最小能被n整除的數是多少。 解題分析: 用DFS或者BFS沿著位數進行搜索,每一次搜索到下一位都有兩
大數取模的二進位制方法
我們先把b轉化為2進位制 b=(a[t] a[t-1] a[t-2]....a[1] a[0]) (a[i]為0或1) 那麼b = a[t]*2^t + a[t-1]*2^(t-1) + ... ... + a[1]*
2018 ACM/ICPC 焦作賽區網路賽 G 大數取模,費馬小定理
There are NN children in kindergarten. Miss Li bought them NN candies. To make the process more interesting, Miss Li comes up with the rul
ACM-ICPC 2018 焦作賽區網路預賽 -G Give Candies(擴充套件尤拉定理+大數取模)
There are NN children in kindergarten. Miss Li bought them NN candies. To make the process more interesting, Miss Li comes up with the rul
大數取模運算,快速冪取模運算
1.快速冪取模 快速冪取模就是在O(logn)內求出a^n mod b的值。演算法的原理是ab mod c=(a mod c)(b mod c)mod c long exp_mod(long a,long n,long b) { long t; if
大數取模
#include<cstdio> #include<cstring> using namespace std; const int maxn=1000+5; int mod; int main(){ char in[maxn]; while(scanf("%s%d
hdu1212(大數取模)
一個真正強大的人,不會把太多心思花在取悅和親附別人上面。所謂圈子、資源,都只是衍生品。最重要的是提高自己的內功。只有自己修煉好了,才會有別人來親附。自己是梧桐,鳳凰才會來棲;自己是大海,百川才來匯聚,花香自有蝶飛來。你只有到了那個層次,才會有相應的圈子,而不是倒過來!
java 大數取模(有可執行程式碼和詳細註解)
package dashu; //這是我的包名字,這個可以按規則任意起 import java.util.*; import java.math.*; public class muban{ /
洛谷 P1226 快速冪取模 模板
題目描述 輸入b,p,k的值,求b^p mod k的值。其中b,p,k*k為長整型數。 輸入輸出格式 輸入格式: 三個整數b,p,k. 輸出格式: 輸出“b^p mod k=s” s為運算結果 輸入輸
UVA 11582 巨大數的斐波那契數列 (大數取模,冪取模,模的計算方法)
Problem F: Colossal Fibonacci Numbers! The i'th Fibonacci number f (i) is recursively defined in the following way: f (0) = 0 and f (1) = 1f (i+2) = f
java實現大數取模
import java.math.*; import java.util.*; public class Main { public static void main(Stri