您的位置:首页 > 其它

利用递归实现10进制转化成任意进制

2016-03-16 21:21 363 查看
c++/c代码实现过程

#include<iostream>
#include<cstring>
using namespace std;
void translation(char *s,int a,int b);
int main(){
cout<<"请输入要转化的数字";
int a ,b;
cin>>a;
cout<<"请输入要转化的进制";
cin>>b;
char s[80];
translation(s,a,b);
cout<<s<<endl;

}

void translation(char *s,int a,int b){
int lengt;
char str[]={"0123456789ABCDEF"};
if(a==0){
strcpy(s,"");
return;
}
translation(s,a/b,b);
lengt= strlen(s);
s[lengt]=str[a%b];
s[lengt+1]='\0';
}


java实现过程
import java.util.Scanner;

public class tran {

public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
System.out.println("请输入要转化的10进制数");
int a = cin.nextInt();
System.out.println("请输入要转化的进制");
int b=cin.nextInt();
StringBuilder bb=new StringBuilder(convto(a,b));
System.out.println(bb.reverse());
}

public static String convto(int a,int b){
String bit="0123456789ABCDEF";
String str;
if(a==0){
return "";
}else{
str = bit.charAt(a%b)+"";
return str+convto(a/b,b);
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: