编写⼀个递归函数计算从1加到100的和
⼀、什么叫做递归?
⼀个过程或在其定义或说明中有直接或间接调⽤⾃⾝的⼀种⽅法;
递归函数就是直接或间接调⽤⾃⾝的函数,也就是⾃⾝调⽤⾃⼰;
int fun(int x)
{
if(x>1)
return x+fun(x-1);
else
return x;
}
main()
{
int sum;
sum=fun(100);
}
⼆、⼀般什么时候使⽤递归?
递归时常⽤的编程技术,其基本思想就是“⾃⼰调⽤⾃⼰”,⼀个使⽤递归技术的⽅法即是直接或间接的调⽤⾃⾝的⽅法。递归⽅法实际上体现了“以此类推”、“⽤同样的步骤重复”这样的思想,它可以⽤简单的程序来解决某些复杂的计算问题,但是运算量较⼤。
还有些数据结构如⼆叉树,结构本⾝固有递归特性;此外,有⼀类问题,其本⾝没有明显的递归结构,但⽤递归程序求解⽐其他⽅法更容易编写程序,如⼋皇后问题、汉诺塔问题等。
正因为递归程序的普遍性,我们应该学会使⽤递归来求解问题。直接递归程序与间接递归中都要实现
当前层调⽤下⼀层时的参数传递,并取得下⼀层所返回的结果,并向上⼀层调⽤返回当前层的结果。⾄于各层调⽤中现场的保存与恢复,均由程序⾃动实现,不需要⼈⼯⼲预。因此,在递归程序的设计中关键是出调⽤所需要的参数、返回的结果及递归调⽤结束的条件。
如在阶乘函数Fact(n)中,各层要求传递⼀个⾃然数n,返回n* Fact(n-1),递归调⽤结束的条件是n=0;据此,可以⽅便地写出它的对应程序编程递归函数
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论