1个回答
展开全部
#include <stdio.h>
int recr(int n) // 递归函数
{
if (n <= 1) return n; // 递归退出条件
return n + recr(n - 1);
}
int main()
{
int n = 0;
printf(" n = ");
scanf("%d", &n);
printf("sum = %d\n", recr(n));
return 0;
}
执行结果:
n = 100
sum = 5050
不过说实话,这种问题真心不适合用递归来解决,反而会干扰初学者对递归和循环的理解
追问
其实我是想想申请一个动态是一维数组,先把数据存入数组中,先计算各个数组中的数据和!能帮我在写一个吗
追答
int sum(int a[], int n) // 递归函数
{
if (n == 1) return a[n - 1]; // 递归退出条件
return a[n - 1] + sum(a, n - 1);
}
递归帮你改了,剩下的你可以自己动手了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询