首先看题目,直接上图

求数列的第n项

看题,不难。主要就是一个数列的规律,以前做过类似的,所以毫不犹豫就直接开始找规律,仔细观察会发现从第三项开始就是前两项的和,试一下发现到后面不是这个规律;继续观察,从第四项开始就是前三项的和,依次检验可以得到规律正确的结果,即

a[n]=a[n-1]+a[n-2]+a[n-3](n>3);

然后写代码,结果错了,话不多说,上图

求数列的第n项

单看,怎样都对,但是我忽略了一点,就是题目要求:%lld。

错的亏也不亏,审题认不认真本来就是能力的一部分,因为粗心没能第一时间答出题目,这次是一次警告,下次绝对不要再犯,下面 奉上正确答案

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
intmain()
{
    long long int n,j;
    long long int a[51];
    while(scanf("%lld",&n)!=EOF)
    {
        a[1]=0;
        a[2]=1;
        a[3]=1;
        for(j=4;j<=n;j++)
            {
                a[j]=a[j-1]+a[j-2]+a[j-3];
            }
            printf("%lld\n",a[n]);
            }
    return 0;
}

这道题,相信只要你用心就一定能看懂,也不需要我特别的解释了,简而言之就是一道 找规律的数列题。

相关文章: