uva 11582 Colossal Fibonacci Numbers!
Posted 日拱一卒 功不唐捐
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了uva 11582 Colossal Fibonacci Numbers!相关的知识,希望对你有一定的参考价值。
https://vjudge.net/problem/UVA-11582
题意:求 斐波那契数列第a^b 项 %n的余数
a,b < 2^64,n<1000
找循环节,最多n^2项一定会出现循环节
#include<cstdio> using namespace std; typedef unsigned long long LL; int f[1000010]; void read(LL &x) { x=0; char c=getchar(); while(c<‘0‘||c>‘9‘) c=getchar(); while(c>=‘0‘ && c<=‘9‘) { x=x*10+c-‘0‘; c=getchar(); } } int main() { int T; scanf("%d",&T); LL a,b; int n; while(T--) { read(a); read(b); scanf("%d",&n); if(n==1) { printf("0\n"); continue; } f[1]=f[2]=1; int i; for(i=3;;i++) { f[i]=(f[i-2]+f[i-1])%n; if(f[i]==1 && f[i-1]==0) break; } i--; int g=1; a%=i; for(;b;b>>=1,a=a*a%i) if(b&1) g=g*a%i; printf("%d\n",f[g]); } }
以上是关于uva 11582 Colossal Fibonacci Numbers!的主要内容,如果未能解决你的问题,请参考以下文章
UVA - 11582 Colossal Fibonacci Numbers!循环节
UVa 11582 - Colossal Fibonacci Numbers!(数论)
Colossal Fibonacci Numbers! UVA - 11582
uva11582 Colossal Fibonacci Numbers!