基础知识。在经历了二重递归的演练之后,再看一重递归,显的简易多了,先看十进制转二进制:
#include <iostream> using namespace std; void f(int n) { if(n==0)return; else f(n/2); cout<<n%2; } int main() { f(121); return 0; }
十进制转任意进制
这个代码的一个特别地方在于使用一个flag[]数组,包括0~F的一个串,如果余数是几,就把相应的flag[]中的元素移到数组中,这种手法已经是第二次看到过,对于字符串很实用!
/*------C++代码----十进制转任意进制----*/ #include <iostream> using namespace std; void convert(char a[],int dec,int base) { char flag[]="0123456789ABCDEF";/*标志数组*/ int len; if(dec==0) return; convert(a,dec/base,base); len=strlen(a); a[len]=flag[dec%base];/*取余数对应的数字*/ a[len+1]='\0'; } int main() { char a[80]; int dec,base; cout<<"输入待转换的十进制数:"; cin>>dec; /*十进制数*/ cout<<"输入转换的进制:"; cin>>base;/*进制*/ convert(a,dec,base);/*调用函数*/ cout<<a; return 0; }