【hdoj1005】Number Sequence
2016-11-08 22:52
441 查看
Number Sequence
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 158167 Accepted Submission(s): 38744
[align=left]Problem Description[/align]
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).
[align=left]Input[/align]
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.
[align=left]Output[/align]
For each test case, print the value of f(n) on a single line.
[align=left]Sample Input[/align]
1 1 3
1 2 10
0 0 0
[align=left]Sample Output[/align]
2
5
[align=left]Author[/align]
CHEN, Shunbao
[align=left]Source[/align]
ZJCPC2004
[align=left]Recommend[/align]
JGShining
规律是48个一个循环,直接打表前48个,再取余一下就好了。
#include<cstdio> #include<iostream> #include<cstring> #include<cmath> #include<algorithm> #define mod 7 using namespace std; typedef long long LL; const int N = 100; int ans ; void init(int A,int B){ ans[1]=1,ans[2]=1; for(int i=3;i<=48;i++){ ans[i]=(A*ans[i-1]%mod+B*ans[i-2]%7)%7; } } int main(){ LL A,B,n; while(scanf("%lld%lld%lld",&A,&B,&n),A||B||n){ init(A,B); printf("%d\n",ans[n%48]); } return 0; }
相关文章推荐
- 1005 hdoj Number Sequence (java函数格式)
- hdoj1005 Number Sequence(找规律)
- HDOJ 题目1005 Number Sequence(剩余定理)
- hdoj 1005 NUMBER Sequence
- 【HDOJ 1005】 Number Sequence (裸矩阵快速幂)
- Number Sequence(hdoj1005)
- HDOJ_1005_Number Sequence
- HDOJ - 1005 - Number Sequence(规律,数学、非常规)
- 递归及递推问题系列之 Number Sequence hdoj 1005
- hdoj1005_number sequence
- HDOJ1005 Number Sequence
- HDOJ丶 1005(Number Sequence)
- HDOJ1005 Number Sequence
- hdoj1005_Number Sequence
- 渣渣ACM日记——1005-Number Sequence(HDOJ)
- HDOJ 1005 Number Sequence
- hdoj 1005 Number Sequence
- [HDOJ1005]Number Sequence
- HDOJ 1005 Number Sequence(规律)
- HDOJ 1005 Number Sequence