递归专项练习(笔试练习)4 计算中国共产党全国代表大会召开的年份

不知道大家有没有和小陈一样的想法,明明理解了递归的算法,可是当面对一道用递归来完成的题目时,却往往难以下手,这是我们的修为不够导致的,那么今天,小陈就由浅入深地为您详解一道递归小题,希望能帮到您!


对于递归,我觉得很重要的一个事就是,这个函数的功能是什么,而这个,是完全由你自己来定义的。 所谓递归,就是会在函数内部代码中,调用这个函数本身,那么就引出了第二件重要的事情,我们必须要找出递归的结束条件,不然的话,会一直调用自己,进入无底洞。也就是说,我们需要找出当参数为啥时,递归结束,之后直接把结果返回。

任务描述

  从1921年党的一大到 2022 年党的二十大,中国共产党已走过了 101 年。根据《中国共产党章程》规定,党的全国代表大会每五年举行一次。但历次党的代表大会召开时间并不平均,最短间隔不到一年,最长的竟有十几年,相隔时间差别很大。今天,我们回顾一下历次党代会召开的时间:   中共一大 (1921年)、中共二大 (1922年)、中共三大 (1923年)、中共四大 (1925年)、中共五大 (1927年)、中共六大 (1928年)、中共七大 (1945年)、中共八大 (1956年)、中共九大 (1969年)、中共十大 (1973年)、中共十一大 (1977年)、中共十二大 (1982年)、中共十三大 (1987年)、中共十四大 (1992年)、中共十五大 (1997年)、中共十六大 (2002年)、中共十七大 (2007年)、中共十八大 (2012年)、中共十九大 (2017年)、中共二十大 (2022年)。   请使用递归实现计算党的几大是哪年召开的函数。

测试说明

测试用例

  输入:    1   输出:    1921

主函数如下。

#include <stdio.h> 
int GetYear(int y[],int n );
int main()
{
    int y[]={0,1921,1922,1923,1925,1927,1928,1945,1956,1969,1973};
    int n ;//这个0十分重要,将大会召开时间对齐
    scanf("%d",&n);
    printf("%d",GetYear(y,n));
    return 0 ;
}

 接下来要做的就是补全GetYear函数。

int GetYear(int y[],int n)
{int t;
    if(n>11)
    {
        t=GetYear(y,n-1)+5;//在此不断递归调用,n-1为上一次召开时间
    }
    else if(n==11)
    {
        t=1977;//1973在数组中下标为十。
    }
    else
    {
        t=y[n];
    }
    return t;
}

需要注意的是,数组中的0不可省略,且不要忘记返回t值。


希望能为大家带来帮助!

最后,如果您觉得我的文章写的不错。

请给小陈:

点赞,收藏加关注!我一定会带来更好的文章的!

猜你喜欢

转载自blog.csdn.net/weixin_73534885/article/details/128880741