关于递归算法的具体规则这里就插个百度链接:因为也很容易在网上找到的递归具体含义,供日后回顾用!
#include<stdio.h>
#include<string.h>
int main(int argc,char *argv[])
{
void convertto(char *s,int integer,int b);
char s[80];
int a,b,i;
printf("输入要转换的整数!");
scanf("%d",&a);
printf("输入要转换成的进制数!");
scanf("%d",&b);
convertto(s,a,b);
for(i=0;s[i]!='\0';i++)
printf(" %c",s[i]);
return 0;
}
void convertto(char *s,int integer,int b)
{
char bit[]={"0123456789"};
int len;
if(0==integer)
{
strcpy(s," ");
return ;
}
convertto(s,integer/b,b);
len=strlen(s);
s[len]= bit[integer%b]; // 此处不能直接用integer%b,因为这里要的时字符而不是整数所以要转换
s[len+1]='\0';
}
以上用递归实现了进制之间的转换。
个人觉得递归不能太纠结于局部,否则,思考起来,很抓狂啊!
貌似最近写的几个程序都用到了递归思想!感觉有时用递归解决会来的更简单。
另外递归,和其他的算法有时候会结合着使用,例如和栈的结合,分治算法也用到了,后面看了点二叉树也会用到! 看样子,还是比较重要啊!