菜鸟向高手们求助,如何利用递归函数写出如下三种代码

初学者学到递归函数,现要求编写三种代码:
1. 输入一个整数n,用递归函数按从小到大的顺序显示出0-n之间的奇数;
2. 输入一个整数n, 用递归函数计算0-n之间所有奇数的和;
3. 输入一个整数n, 用递归函数计算0-n之间所有奇数的乘积。

1个回答

如果问题得到解决,请点我回答左上角的采纳和向上的箭头,谢谢

题目没有说清楚之间是否包含了n本身,假设不包含。

#include "stdio.h"

void foo1(int n, int acc = 1)
{
    if (n > acc)
    {
        printf("%d ", acc);
        foo1(n, acc + 2);
    }
}

long foo2(int n, int acc = 1, long sum = 0)
{
    if (n > acc)
        return foo2(n, acc + 2, sum + acc);
    return sum + acc;
}

long foo3(int n, int acc = 1, long acc2 = 1)
{
    if (n > acc)
        return foo3(n, acc + 2, acc2 * acc);
    return acc2 * acc;
}

int main()
{
    int n;
    scanf("%d", &n);
    foo1(n);
    printf("\nsum = %d", foo2(n));
    printf("\nproduct = %d\n", foo3(n));
    return 0;
}
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问