如果您无法下载资料,请参考说明:
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不了。