UVA11582 Colossal Fibonacci
来源:互联网 发布:java写入txt文件 编辑:程序博客网 时间:2024/06/08 14:26
问题描述:
这题花了我一天时间调,还是自己渣,很多细节都没注意。
分析:
因为要求的是
这里有一个关键的地方,
这下就可以先建一个
f(i)=f(i−1)+f(i−2) //式1
根据式1和
f(i) mod n=(f(i−1) mod n+f(i−2) mod n) mod n //式2而
F(i)=f(i) mod n //式3则根据式2和式3得出
F(i)=(f(i−1) mod n+f(i−2) mod n) mod n=(F(i−1)+F(i−2)) mod n
即
最后找到
代码如下:
void Fibonacci_F(){ F[0] = 0; F[1] = 1; for(int i=2; ; i++) { F[i] = (F[i-1] + F[i-2]) % n; if(F[i-1] == 0 && F[i] == 1) { k = i-1; break; } } return;}
完整代码如下:
#include<cstdio>#include<iostream>using namespace std;typedef unsigned long long LL;const int maxn = 10000000+10;int F[maxn];LL a,b;int n,k;/*建表*/void Fibonacci_F(){ F[0] = 0; F[1] = 1; for(int i=2; ; i++) { F[i] = (F[i-1] + F[i-2]) % n; if(F[i-1] == 0 && F[i] == 1) { k = i-1; break; } } return;}/*幂求模*/int pow_mod(LL a, LL b, int n){ if(b == 0) return 1; int x = pow_mod(a, b/2, n); x = x * x % n; if(b%2 == 1) x = x * a % n; return x;} int main(){ int T; scanf("%d",&T); while(T--) { cin>>a>>b>>n; if(a == 0 || n == 1) { cout<<0<<endl;//关键。 } else{ Fibonacci(); printf("%d\n",F[pow_mod(a%k,b,k)]); } } return 0;}
有一个细节很重要:
if(a == 0 || n == 1){ cout<<0<<endl;//关键。}
就是因为少了这个,我一直runtime error,所以细节决定成败。
1 0
- UVA11582 Colossal Fibonacci
- Uva11582 Colossal Fibonacci Numbers!
- 【数论】Colossal Fibonacci Numbers!, UVa11582
- UVa11582 - Colossal Fibonacci Numbers!(模运算)
- uva11582 Colossal Fibonacci Numbers(分治法)
- UVa11582 - Colossal Fibonacci Numbersl (打表找规律)
- 模的应用--uva11582 Colossal Fibonacci Numbers!
- UVa11582 [快速幂]Colossal Fibonacci Numbers!
- UVA11582 Colossal Fibonacci Numbers!(fibonacci序列模x的周期性)
- 例题10-1 UVa11582 Colossal Fibonacci Numbers!(同余与模算术)
- Uva11582 Colossal Fibonacci Numbers! (数论、斐波那契循环节)
- UVa11582 Colossal Fibonacci Numbers!(斐波那契数列小规律+思维)
- 11582 - Colossal Fibonacci Numbers!
- 11582 - Colossal Fibonacci Numbers!
- Colossal Fibonacci Numbers! UVA
- Colossal Fibonacci Numbers! UVA
- Colossal Fibonacci Numbers! UVA
- Colossal Fibonacci Numbers! UVA
- Flink实现WordCount
- 归并排序
- 多线程基础部分小结
- 笔试面试算法经典--数组partition调整使数组的左部分单调有序
- 使用java理解程序逻辑第十一章
- UVA11582 Colossal Fibonacci
- Android异步----重新认识Android(6)
- 【OpenGL】OpenGL系列——08绘制曲面与查询函数
- git制作和提交patch
- 地图开发——腾讯地图混淆::app:shrinkReleaseMultiDexComponents
- as构建结构
- Linux一些点
- C#元数据
- pandas 模块学习总结