前言——递归
程序调用自身的编程技巧称为递归( recursion)。递归作为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。
一、实际操作
完整代码
#include <stdio.h>
#define N 1000
int addTo(int paraNumber)
{
int tempSum;
printf("entering addTo(%d)\r\n", paraNumber);
if (paraNumber <= 0)
{
printf(" the number is 0\r\n");
return 0;
}
else
{
tempSum = addTo(paraNumber - 1) + paraNumber;
printf("the number is %d \r\n",tempSum);
return tempSum;
}
}
int clearAddTo(int paraNumber)
{
int tempSum;
if (paraNumber <= 0)
{
return 0;
} else
{
tempSum = clearAddTo(paraNumber - 1) + paraNumber;
return tempSum;
}
}
void addToTest()
{
int n, sum;
printf("---- 计算开始 ----\r\n");
printf("输入所要计算的数字:");
scanf("%d",&n);
sum = addTo(n);
printf("\r\n0 adds to %d gets %d.\r\n", n, sum);
printf("---- 计算结束 ----\r\n");
}
void main()
{
addToTest();
}