解题思路:
1.  luodi  函数:

- 首先处理了  n  为 1 和 2 的特殊情况,直接返回相应的计算结果。

- 对于  n > 2  的情况,先计算出  luodi(m, n - 1)  和  luodi(m, n - 2)  的值,并分别存储在  prev1  和  prev2  中。然后根据递归关系计算并返回最终结果。

2.  main  函数:

- 读取用户输入的  m  和  n  。

- 调用  luodi  函数计算并将结果存储在  s  中。

- 计算  h  的值时,同样根据  n  的不同情况进行处理。

- 当  n == 1  时, h = m / 2  。

- 当  n == 2  时, h = m / 4  。

- 当  n > 2  时,先计算出  luodi(m, n - 1)  和  luodi(m, n - 2)  的值,然后计算  h = (prev1 - prev2) / 8  。

- 最后以保留两位小数的格式输出  h  和  s  
注意事项:

参考代码:

#include <stdio.h>

double luodi(double m, double n) {

    if (n == 1) {

        return m;

    } else if (n == 2) {

        return 2 * m;

    } else if (n > 2) {

        double prev1 = luodi(m, n - 1);

        double prev2 = luodi(m, n - 2);

        return prev1 + (prev1 - prev2) / 2;

    }

    return 0;  // 增加默认返回值,以防意外情况

}

int main() {

    double m, n;

    scanf("%lf%lf", &m, &n);

    double s = luodi(m, n);

    double h;

    if (n == 1) {

        h = m / 2;

    } else if (n == 2) {

        h = m / 4;

    } else if (n > 2) {

        double prev1 = luodi(m, n - 1);

        double prev2 = luodi(m, n - 2);

        h = (prev1 - prev2) / 8;

    }

    printf("%.2lf %.2lf", h, s);

    return 0;

}


点赞(0)
 

0.0分

0 人评分

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

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

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

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

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

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

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

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

评论列表 共有 0 条评论

暂无评论