递归算法1

来源:互联网 发布:直播app源码搭建 编辑:程序博客网 时间:2024/05/29 23:21

  递归的过程分为两个阶段:回归和递推。回推就是根据要求解的问题找到最基本的问题解,这个过程需要系统栈保存临时变量的值;递推是根据最基本问题的解得到所求问题的解,这个过程是释放系统栈的空间,直到得到问题的解。

  1.n的阶乘求值,通过分析可知,当n=0或n=1,n的阶乘值为1,否则f(n)=n*f(n-1) 

#include <stdio.h> long int Fact(int n);int main(){int n;printf("请输入一个整数:\n");scanf("%d",&n);printf("%d=%d\n",n,Fact(n));}long int Fact(int n){if(n<0){printf("不存在小于0的阶乘!\n");return -1;}if(n==0){return 1;}else{return n*Fact(n-1);}}

  2.斐波那契第n项求值

//斐波那契第n项求值 0,1,1,2,3,5,8,13#include <stdio.h>int fib(int n);int main(){int n;printf("请输入一个整数\n");scanf("%d",&n);printf("%d=%d\n",n,fib(n));return 0;}int fib(int n){if(n==0){return 0;}if(n==1){return 1;}if(n>1){return fib(n-1)+fib(n-2);}}





原创粉丝点击