博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
例题10-1 UVa11582 Colossal Fibonacci Numbers!(同余与模算术)
阅读量:6409 次
发布时间:2019-06-23

本文共 1037 字,大约阅读时间需要 3 分钟。

题意:

看白书

要点:

先斐波那契数列打个表,然后用同余与模算术,找个规律就行。注意数的最大值为2^64,用long long型还不够,必须要用unsigned long long型。

#include
#include
#include
#include
int fibo[1025][8000];int g[1025];int pow_mod(unsigned long long a,unsigned long long n, int m)//注意2^64要用unsigned long long型{ if (n == 0) return 1; int x = pow_mod(a, n / 2, m); unsigned long long ans =(unsigned long long)x*x%m; if (n % 2 == 1) ans = ans*a%m; return (int)ans;}int main(){ unsigned long long a, b; int n,t,i,x; for (n = 2; n <= 1000; n++) { fibo[n][0] = 0; fibo[n][1] = 1; for (i = 2;; i++) { fibo[n][i] = (fibo[n][i - 1] % n + fibo[n][i - 2] % n) % n; if (fibo[n][i] == 1 && fibo[n][i - 1] == 0) //出现一样的说明重复了 { g[n] = i-1; break; } } } scanf("%d", &t); while (t--) { scanf("%llu%llu%d", &a, &b, &n); if (a == 0 || n == 1) //n=1时前面没打表,g[1]=0会RE printf("0\n"); else { x = pow_mod(a%g[n], b, g[n]); printf("%d\n", fibo[n][x]); } } return 0;}

转载于:https://www.cnblogs.com/seasonal/p/10343755.html

你可能感兴趣的文章
js传参不是数字_JS的Reflect学习和应用
查看>>
三个不等_数学一轮复习05,从函数观点看方程与不等式,记住口诀与联系
查看>>
卡尺测量的最小范围_汽车维修工具-测量用具
查看>>
网优5g前景_5G网络优化师前景怎么样?
查看>>
竞态条件的赋值_[译] part25: golang Mutex互斥锁
查看>>
delmatch oracle_完美完全卸载(清除)oracle数据库的方式(方法)
查看>>
pyqt 滚动条 美化_Pyqt5 关于流式布局和滚动条的综合使用示例代码
查看>>
51单机片 编译hex_单片机爬坑记-05-编译环境(完)
查看>>
java 正则表达式 img_Java正则表达式获得html字符串里的<img src=""/> 中的url列表
查看>>
java 文件crc校验_一个获取文件crc32校验码的简洁的java类 | 学步园
查看>>
java flatmapfunction_Java8 Stream flatmap中间操作用法解析
查看>>
java rmi spring 4.0_Java Spring RMI一些尝试
查看>>
JAVA怎么连接华为的HDFS系统_JAVA-API操作HDFS文件系统(HDFS核心类FileSystem的使用)...
查看>>
java牛客网四则运算_数据库刷题—牛客网(51-61)
查看>>
Java get set6_JDK6的新特性(转)
查看>>
java发送邮件 不登陆_Java邮件到Exchange Server“不支持登录方法”
查看>>
编程学习初体验(5. 如何自学编程)(2)
查看>>
思科ISR G1与ISR G1C的区别
查看>>
利用perl提取web配置文件中的域名对应的路径
查看>>
Centos5上安装JRE和LUMAQQ
查看>>