【杭电1005】Number Sequence
来源:互联网 发布:淘宝天猫国际要身份证 编辑:程序博客网 时间:2024/06/06 12:58
Number Sequence
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 158133 Accepted Submission(s): 38729
Problem Description
A number sequence is defined as follows:
f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.
Given A, B, and n, you are to calculate the value of f(n).
f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.
Given A, B, and n, you are to calculate the value of f(n).
Input
The input consists of multiple test cases. Each test case contains 3 integers A, B and n on a single line (1 <= A, B <= 1000, 1 <= n <= 100,000,000). Three zeros signal the end of input and this test case is not to be processed.
Output
For each test case, print the value of f(n) on a single line.
Sample Input
1 1 31 2 100 0 0
Sample Output
25
Author
CHEN, Shunbao
Source
ZJCPC2004
Recommend
JGShining | We have carefully selected several similar problems for you: 1008 1004 1021 1019 1009
可以发现一个规律:因为对7取模,f[n]不超过7,从中间或者开头开始形成一个周期,找到这个周期循环就可以
code:
<span style="font-size:14px;">#include<cstdio>long long f[100000000];int main(){long long n;int a,b,j;while(scanf("%d%d%lld",&a,&b,&n)!=EOF&&a!=0&&b!=0&&n!=0){f[1]=1;f[2]=1;int s=0;//记录周期 for(int i=3;i<=n;i++){f[i]=(a*f[i-1]+b*f[i-2])%7;for(j=2;j<i;j++){if(f[i]==f[j]&&f[i-1]==f[j-1])//确定前两个找到一个周期{s=i-j;break;} }if(s>0)break;}if(s>0)f[n]=f[(n-j)%s+j];//周期循环并加上前面不参加循环的数printf("%lld\n",f[n]);}return 0; } </span>
另一种code:
#include<iostream> using namespace std; int f(int A, int B,int n) { if(n==1 || n==2) return 1; else return (A*f(A,B,n-1)+B*f(A,B,n-2))%7; } int main() { int a,b,n; while(cin>>a>>b>>n,a||b||n) { cout<<f(a,b,n%49)<<endl; } return 1; }
0 0
- 杭电1005 Number Sequence
- 杭电 1005 Number Sequence
- 杭电 1005 Number Sequence
- 杭电1005 Number Sequence
- 杭电1005Number Sequence
- 杭电1005-Number Sequence
- 【杭电1005】Number Sequence
- 【杭电】 1005 Number Sequence
- 杭电1005 Number Sequence
- 杭电1005 Number Sequence
- [杭电]Number Sequence
- 杭电ACM 1005 Number Sequence
- 杭电OJ 1005:Number Sequence
- 杭电 1005 Number Sequence()
- Number Sequence(杭电1005)
- 杭电1005 Number Sequence(规律)
- 杭电1005 Number Sequence问题
- 杭电acm 1005 Number Sequence
- linux fgets() 接口使用
- 第二十四讲项目2-油量监控
- 一天一条Linux指令-route
- React Native 之 ScrollView使用
- MapReduce之连接模式一:reduce端连接
- 【杭电1005】Number Sequence
- http权威指南 第一部分(基础)
- Java中Object的输出问题
- 《别告诉我你懂PPT》札记
- dp uva11584
- A+B问题
- WKWebView OC与js的交互
- uitableviewcell内嵌入uicollectionview后uitableviewcell高度随 uicollection的contentsize的变化而变化
- KVM虚拟机在线迁移环境配置(CentOS 7.0)