递归算法

来源:互联网 发布:java ssh2协议 编辑:程序博客网 时间:2024/05/20 02:30

递归算法是一种直接或间接的调用自身的算法。递归算法的具体实现过程是通过函数或者子过程来完成的,在函数或者子过程的内部,编写代码直接或间接的调用自己,即可完成递归的操作。

下面通过两个例子来具体说明递归的作用

1、用递归实现阶乘

#include<stdio.h>#include<iostream>int fact(int n);int main(){int i;printf("请输入要求阶乘的一个整数:");scanf("%d",&i);printf("%d阶乘的结果为:%d\n",i,fact(i));system("pause");return 0;}int fact(int n){if(n<=1){return 1;}else{return n*fact(n-1);}}
2、用递归实现进制的转换

#include<stdio.h>#include<string.h>#include<iostream>//转换的方法void Convert(char *s,int n,int b){//定义一组字符串,16个进制码char bit[]={"0123456789ABCDEF"};int len;if(n==0){strcpy(s,"");return;}Convert(s,n/b,b);//计算出该字符的长度len=strlen(s);//将每个字符放在s[]数组中s[len]=bit[n%b];//在字符串末尾追加\0表示该字符串结束s[len+1]='\0';}void main(){char s[80];int base,old;printf("请输入一个你需要转换的整数:");scanf("%d",&old);printf("请输入需要转换的进制:");scanf("%d",&base);Convert(s,old,base);printf("%s\n",s);system("pause");return;}

更好的理解递归可以参考这篇博客:点击打开http://blog.sina.com.cn/s/blog_95c607dd010132tj.html


0 0
原创粉丝点击