递归实现前n个整数求和
用递归函数实现前n项之和,即s=1+2+3+...+n;
int sum(int n){
if(n<= 0){
return 0;
}
if(n==1){
return 1;
}else{
return (sum(n-1)+n);
}
}
int main() {
int n,num;
scanf("%d",&n);
num=sum(n);
printf("前%d项之和是:%d\n",n,num);
return 0;
}
输出结果:
前5项之和是:15
#include<stdio.h>
int recursion(int n)
{
int sum;
if(n==1)
return 1;
else
{
sum=n+recursion(n-1);
return sum;
}
}
int main()
{
int i;
printf("请输入n的值:");
scanf("%d",&i);
printf("%d\n",recursion(i));
return 0;
}
具体代码如下:
#include<stdio.h>
//定义fun()函数实现递归
int fun(int n)
{
if(n==1)
{
return 1;
}
return n+fun(n-1);
}
int main()
{
int n;
printf("请输入正整数n:");
scanf("%d",&n);
printf("前n个数的和为:%d",fun(n));
return 0;
}
在我个人理解下,递归就好比是一个高级的循环而已。
只不过是这种特殊的循环是分层级的,
每每执行一次循环就会新产生一个层级,
每层及的执行相应的操作,
递归在某些问题中还是比较实用的,同学要认真对待这部分内容,
在实际的解题过程中要多多尝试运用递归来解题
有帮助的话希望采纳哦
加油加油
https://blog.csdn.net/weixin_46640830/article/details/105566826
参考
#include<stdio.h>
int fun(int n)
{
int m=1;
if(n>1)
m=n+fun(n-1);
return m;
}
int main()
{
int n,a;
scanf("%d",&n);
a=fun(n);
printf("%d",a);
return 0;
}
#include <stdio.h>
int fun(int n)
{
if(n==1) return 1;
else return(fun(n-1)+n);
}
int main()
{
int n;
scanf("%d",&n);
printf("%d\n",fun(n));
return 0;
}
这个要编的是个函数