简单数学规律题,多打印几组数据,发现输出都是有规律的,循环的字段都是6的倍数,且最高为48,所以我们统一设置重复长度为48就好。
题目:http://acm.split.hdu.edu.cn/showproblem.php?pid=1005
代码:
Memory: 1796 KB | Time: 0 MS | |
Language: C++ | Result: Accepted |
#include <iostream> using namespace std; const int maxn=50; int a, b, n; int ans[maxn]; int main() { while(cin>>a>>b>>n && a+b+n) { if(n<3)cout<<"1"<<endl; else { int f1=1, f2=1,f3; for(int i=1; i<=48; i++) { f3=(a*f2+b*f1)%7; ans[i]=f3; f1=f2; f2=f3; } cout<<ans[(n-2)%48]<<endl; } } return 0; }