首页 > 其他 > 详细

杭电OJ1005 水过

时间:2015-11-13 18:32:40      阅读:274      评论:0      收藏:0      [点我收藏+]

这题其实读题的时候表示不难,但是真正做起来的时候发现其实还挺难的。

在读题的时候就会考虑的大数组内存溢出的问题以及使用迭代来解决,但是这都不知很好的解决方案。

在看网上的解答,普遍都是找规律。

找到规律后这题就好解了。

这题我是看着别人的思路过得,实在惭愧。

我的参考文章:http://www.lofter.com/postentry?from=search&permalink=cafef_31acc6

这篇文章找到了1008的周期循环,在做的时候直接从发a * f[1]+b * f[2]做起,同时用取余找周期的方法,找到正确的数。

下面附上AC代码:

#include<stdio.h>

int main(){
	int i,sum,a,b,n;
	while(scanf("%d%d%d",&a,&b,&n)){
		if(a == 0 && b == 0 && n == 0){
			break;
		}
		int f[1009];
		f[1] = 1;
		f[2] = 1;
		for(i = 3;i <= 1008; i++){
			f[i] = (a * f[i - 1] + b * f[i - 2]) % 7;
		}
		printf("%d\n",f[n % 1008]);
	}
	
	return 0;
}

  

杭电OJ1005 水过

原文:http://www.cnblogs.com/zhuhongjongy/p/4962786.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!