number sequence

来源:互联网 发布:php怎么写后台 编辑:程序博客网 时间:2024/04/30 15:24
题目描述:
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).

大致思路:
如果硬算的话一是会爆时间,二还是会暴空间的。所以事先打了个表,发现在49以后出现了循环节。
代码:
#include<stdio.h>int main(){    long a,b,n,i,f[100];    while(scanf("%ld%ld%ld",&a,&b,&n) && a!=0){        f[1]=f[2]=1;        for(i=3;i<=48;i++)            f[i]=(a*f[i-1]+b*f[i-2])%7;        printf("%ld\n",f[(n>48)?n%48:n]);    }    return 0;}


0 0
原创粉丝点击