递归的原理:递归算法是把问题转化为规模缩小了的同类问题的子问题。然后递归调用函数或过程来表示问题的解。一个过程或函数直接或间接调用自己本身,这种过程或函数叫递归过程或函数。
1,递归部分代码
int addTo(int paraData)
{
int sum;
printf("开始addTo(%d)\r\n",paraData);
if(paraData<=0)//递归到最小值处回头解决之前的问题
{
printf("return 0\r\n");
return 0;
}
else//循环调用本身(目的是为了将问题逐渐缩小到最小值)
{
sum=addTo(paraData-1)+paraData;
printf("return %d\r\n",sum);
return sum;
}
}
2,全部代码以及运行结果
#include <stdio.h>
int addTo(int paraData)
{
int sum;
printf("开始addTo(%d)\r\n",paraData);
if(paraData<=0)//递归到最小值处回头解决之前的问题
{
printf("return 0\r\n");
return 0;
}
else//循环调用本身(目的是为了将问题逐渐缩小到最小值)
{
sum=addTo(paraData-1)+paraData;
printf("return %d\r\n",sum);
return sum;
}
}
void addTest()
{
int n,sum;
n=5;
sum=addTo(n);
printf("sum=%d\r\n",sum);
n=1;
sum=addTo(n);
printf("sum=%d\r\n",sum);
n=-1;
sum=addTo(n);
printf("sum=%d\r\n",sum);
}
int main()
{
addTest();
return 0;
}