HDU 1005 Number Sequence(循环周期是关键)
2016-05-06 17:06
489 查看
Number Sequence
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 147965 Accepted Submission(s): 35965
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).
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 3 1 2 10 0 0 0
Sample Output
2 5
Author
CHEN, Shunbao
Source
ZJCPC2004
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1005
思路:取模的题目结果一般都有规律.此题会误以为周期就是7,但是,这题两个数相加后在对7取模,所以就有7*7=49种情况,即,周期为:49;
AC代码:
#include <iostream> using namespace std; int arr[50]; int main() { int n,a,b; arr[1]=arr[2]=1; while(cin>>a>>b>>n) { if(a==0&&b==0&&n==0) break; int minn=n<50?n:50;//一个小小的优化 for(int i=3; i<=minn; i++) { arr[i]=(a*arr[i-1]+b*arr[i-2])%7; } cout<<arr[n%49]<<endl; } return 0; }
相关文章推荐
- Codeforces Round #349 (Div. 2) C. Reberland Linguistics 【DP】
- leetcode.304. Range Sum Query 2D - Immutable
- 关于Request.Form的实验
- UIScrollView的属性总结
- leetcode.307. Range Sum Query - Mutable 树状数组
- MUI 和 framework7区别之 UI组件的几点差异
- UITextField 限制值输入数字和英文
- easy-ui之datagrid 单元格样式设置
- quick 如何创建对象的传入参数
- 用UICollectionView实现无限轮播图
- IOS UITextField输入位数限制
- Java学习GUI最大公约数
- APUE多线程--条件变量
- spark sql运行出错(Container killed on request. Exit code is 143)
- 用户体验设计(UED)小知识---产品经理深入浅出课程
- Android字符串相关类 - StringBuilder
- Android字符串相关类 - StringBuilder
- easyui防止panel,dialog,window超出父元素边界
- HDU4027 Can you answer these queries? 线段树
- Codeforces Round #350 (Div. 2) E. Correct Bracket Sequence Editor 栈 链表