解题思路:
如果x大于0,则执行函数:

  1. 如果x==1返回10;

  2. 如果x>1,递归x-1,返回f(x-1)+2;

  3. 输出f(x);


    参考代码:

  4. #include <stdio.h>
    int f( int x );
    
    
    int main()
    {
        int x;
        scanf( "%d", &x );
        if ( x > 0 )
            printf( "%d", f( x ) );
        return(0);
    }
    
    /*-------------------------------*/
    int f( int x )
    {
        if ( x == 1 )
            return(10);
        else
        if ( x > 1 )
            return(f( x - 1 ) + 2);
    }
    别忘点赞哦-.-

点赞(21)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 4 条评论

Mark11 6年前 回复TA
@Christ 另外,这题的递归用的真棒!
Mark11 6年前 回复TA
@Christ 窃以为,模块化的思维是很重要的。小题上勤加练习,在分解复杂任务时就不会显得捉襟见肘了。
Christ 6年前 回复TA
@Christ 这道题模块化还行,可是你的其他题解老是模块化,有什么特殊的意义?能说一下吗?
Christ 6年前 回复TA
那么几行代码一定要模块化吗?这反而会影响效率吧