递归递归递归递归递归递归递归递归递归递归.......
程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。
下面是用函数递归实现的1+2+3+····+n的程序
#include<stdio.h> long long fuc(int a); int main(){ long long n,x;//用long long 声明类型因为考虑递归处理后数据可能较大。 scanf("%lld",&n); x=fuc(n); printf("%lld",x); } long long fuc(int a){ if(a==1) return 1; else return a+fuc(a-1); }
输入:100 输出:5050很明显答案是对的,所以这事成了!
说明:return a+fuc(a-1)时,fuc(a-1)会返回它的值,也就是(a-1)+fuc(a-2),然后就。。。。。。(套娃)
最后
if(a==1) return 1;终止了这个无休止的:
递归递归递归递归递归递归递归递归递归递归.......
当然,也可以用循环实现
#include<stdio.h> int main(){ long long n,x;//x为累加器 scanf("%lld",&n); x=0;//初始化x的值 for(int i=1;i<=n;i++){ x+=i; } }