递推数列

题目描述

给定a0,a1,以及an=p*a(n-1) + q*a(n-2)中的p,q。这里n >= 2。 求第k个数对10000的模。

输入描述:

输入包括5个整数:a0、a1、p、q、k。

输出描述:

第k个数a(k)对10000的模。

输入

20 1 1 14 5

输出

8359

思路分析

 将每一次得到的结果记录下来,再进行递推。

  最重要的是需要将每一个递推数进行截断,即每一次都要进行取模,这样才不会超过内存限制。

 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     int a0,a1,p,q,k;
 6     
 7     while(scanf("%d%d%d%d%d",&a0,&a1,&p,&q,&k)!= EOF)
 8     {
 9         long re = 0;
10         for(int i=2;i<=k;i++)
11         {
12             re = (a1*p+a0*q)%10000;
13             a0 = a1;
14             a1 = re;
15         }
16         re = re%10000;
17         printf("%ld",re);
18     }
19     return 0;
20 }
原文地址:https://www.cnblogs.com/jiashun/p/newcode13.html