杭电1005解题报告.doc
上传人:sy****28 上传时间:2024-09-14 格式:DOC 页数:2 大小:14KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

杭电1005解题报告.doc

杭电1005解题报告.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

1005解题报告#include<iostream>usingnamespacestd;intmain(){intA,B,n,i;intf[1000];f[1]=1;f[2]=1;while(cin>>A>>B>>n&&A&&B&&n){if(n>2){for(i=3;i<1000;i++){f[i]=(A*f[i-1]+B*f[i-2])%7;if(f[i]==1&&f[i-1]==1)break;}i=i-2,n=n%i;if(n==0)n=i;}cout<<f[n]<<endl;}return0;}这个题的思路比较简单。先给f(1),f(2)赋值,然后用一个for循环语句,依次把以后的值代入这个公式就行了。但只有思路却是不容易AC的,还注意判断n的范围及结束的标志。n如果小于2肯定不行,因为n为2就有f(0),不符题意。结束的标志是n磨i为0.这个是比较难想到的。我开始的做法是:输入n,在for语句中判断i是否小于等于n,而不是的小于一个给定的数,这样好像AC不了。