递归就是一个函数在它的函数体内调用它自身。执行递归函数将反复调用其自身,每调用一次就进入新的一层。递归函数必须有结束条件。
当函数在一直递推,直到遇到墙后返回,这个墙就是结束条件。
所以递归要有两个要素,结束条件与递推关系。
递归的时候,每次调用一个函数,计算机都会为这个函数分配新的空间,这就是说,当被调函数返回的时候,调用函数中的变量依然会保持原先的值,否则也不可能实现反向输出。
没有使用常见的循环,使用递归完成前n项和
#include<stdio.h>
#include<stdlib.h>
//不考虑常规的循环,使用递归思想完成1到100的累加和
// 1+2+3+4+5+6+...+100
// f(n)=f(n-1)+n 递归关系
// f(1)=1 递归出口
int sum(int n)
{
if(n==1)
return 1;
else
return (sum(n-1)+n);
}
int main()
{
int n,num;
printf("请输入要计算到第n项之和,n:");
scanf("%d",&n);
num=sum(n);
printf("结果是%d\n",num);
}
运算结果展示