UVA 11582 - Colossal Fibonacci Numbers!
2015-08-20 15:56
267 查看
不知道怎么搞的 题目粘不上来了
直接上代码吧
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <string>
#include <algorithm>
using namespace std;
int f[10010],n,mod;
int gao()
{
f[0]=0,f[1]=1%n;
for(int i=2;;i++)
{
f[i]=(f[i-1]+f[i-2])%n;
if(f[i]==f[0]&&(f[i]+f[i-1])%n==f[1]) return i;
}
// return 1;
}
unsigned long long a,b;
int pow(int x,unsigned long long n)
{
if(n==0) return 1%mod;
int ret=pow(x,n/2);
ret=ret*ret%mod;
if(n&1)
return ret*x%mod;
else
return ret;
}
int t,T;
int main()
{
scanf("%d",&t);
while(t--)
{
cin>>a>>b>>n;
mod=gao();
int x=pow(a%mod,b);
printf("%d\n",f[x%mod]);
}
return 0;
}
直接上代码吧
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <string>
#include <algorithm>
using namespace std;
int f[10010],n,mod;
int gao()
{
f[0]=0,f[1]=1%n;
for(int i=2;;i++)
{
f[i]=(f[i-1]+f[i-2])%n;
if(f[i]==f[0]&&(f[i]+f[i-1])%n==f[1]) return i;
}
// return 1;
}
unsigned long long a,b;
int pow(int x,unsigned long long n)
{
if(n==0) return 1%mod;
int ret=pow(x,n/2);
ret=ret*ret%mod;
if(n&1)
return ret*x%mod;
else
return ret;
}
int t,T;
int main()
{
scanf("%d",&t);
while(t--)
{
cin>>a>>b>>n;
mod=gao();
int x=pow(a%mod,b);
printf("%d\n",f[x%mod]);
}
return 0;
}
相关文章推荐
- [nginx] nginx + spawn-fcgi + wsapi/lua(搭建lua的web dev平台)
- blur 简单滤波
- JavaScript(二)-13-(全局方法&Number对象)
- GPS 的PPS
- 退出循环:break和continue
- IE浏览器下ajax缓存导致数据不更新的解决方法
- 使用linux服务logrotate文件tomcat日志文件
- 获取当前项目本地路径地址
- org
- Annotation(四)——Struts2注解开发
- BthWriteScanEnableMask使用
- 使用JProfiler9对远程Linux服务器Java应用进行性能检测
- PageView 和ListView 代码实现
- Python中字典映射类型的学习教程
- Android RSA加密解密
- Windows 10企业批量部署实战之Windows 10 镜像导入
- getDrawingCache()=null的解决办法
- 守护进程 linux 实例
- amchart使用总结
- C++ volatile