hdu1005
来源:互联网 发布:入门级手表 知乎 编辑:程序博客网 时间:2024/04/27 20:11
#include<iostream>using namespace std;int main(){int a,b,c;while((cin>>a>>b>>c)&&(a+b+c)>0){int num[55];num[0]=num[1]=1;int sign;for(int i=2;i<50;i++){num[i]=(a*num[i-1]+b*num[i-2])%7;if(num[i]==1&&num[i-1]==1){sign=i-2;break;}}cout<<num[(c-1)%(sign+1)]<<endl;}return 0;}
n=100,000,000,用递归的话会栈溢出,即数组不能开到那么大。
找出循环节,通过分析,f(n)的取值有0,1,2,3,4,5,6共7种可能(对其%7)。设初始状态为1,1,x。则下一状态为1,x,y。再循环一次为x,y,z。。。。。。直到又一次到达1,1,x的状态,又因为f(n)=(a*f(n-1)+b*f(n-2))共有49种不同的组合方式,所以将x,y,z看成是一组数据,则第三个数z最多有49种,即最多经过49次即可找到循环节。
0 0
- HDU1005
- hdu1005
- hdu1005
- hdu1005
- HDU1005
- hdu1005
- HDU1005
- hdu1005
- hdu1005
- hdu1005
- HDU1005
- hdu1005
- HDU1005
- HDU1005
- HDU1005
- hdu1005
- hdu1005
- HDU1005
- 笔试难点(完美)
- uml九种图之 时序图 协作图
- 页面中基于JSTL标签调用函数--之${fn:}内置函数
- BZOJ 4195 && NOI 2015 并查集
- 全排列,字典顺序问题 ( permutations/leetcode)
- hdu1005
- 欢迎使用CSDN-markdown编辑器
- windows系统下安装和使用ROS的解决方案 (1 win_ros 2 rosserial_windows)
- 对二叉树和平衡二叉树实现
- 第5周 项目5 - 后缀表达式
- c语言结构体对齐
- 占个坑,最近太忙了,没时间写博客啊,我先占个坑
- SPOJ 7001 Visible Lattice Points (莫比乌斯反演)
- 面向对象_继承中成员变量的关系