您的位置:首页 > 其它

zoj 2105 (数学之,找规律结)

2013-07-19 09:37 162 查看
点击打开链接

//zoj f[1]=1,f[2]=1,f
=(a*f[n-1]+b*f[n-2])%7
//因为%7,所以肯定有规律,有因为fn有前两项决定,
//所以循环结<=7*7=49,当找到规律结m的时候
//不能直接用n%m,因为当n==m时,f
=f[0],f[0]无用
//应用f[(n-1)%m+1]!!!
#include"stdio.h"
#include"string.h"
#include"math.h"
int A[50];
void fun(int a,int b,int n)
{
int i;
A[0]=A[1]=A[2]=1;
for(i=3;i<=49;i++)
{
A[i]=(a*A[i-1]+b*A[i-2])%7;
if(A[i]==A[i-1]&&A[i]==1)break;
}
printf("%d\n",A[(n-1)%(i-2)+1]);
}
int main()
{
int i;
int n,a,b;
while(scanf("%d%d%d",&a,&b,&n)!=-1&&(n+a+b))
fun(a,b,n);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数学 找规律 循环结