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

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);
		}
		
	}
	
}



你可能感兴趣的:(递归,算法基础)