java非递归_java-递归及非递归实现十进制数向任意进制转换

本文介绍了如何使用Java编程实现十进制数到任意进制(2~16)的转换,分别提供了递归和非递归两种方法的详细代码实现,并展示了递归调用过程的例子。
摘要由CSDN通过智能技术生成

java-递归及非递归实现十进制数向任意进制转换

java-递归及非递归实现十进制数向任意进制转换

一.题目要求

题目:将非负十进制整数n转换成b进制。(其中b=2~16)

二.算法设计思路及递归模型

递归出口:num=0 //此处num指递归后(num/base)=0,即商为0时递归结束。

ee264f8ecaaa569cc86c393ad3a9ca04.png

三. 代码实现

递归实现

package scale;

import java.util.Scanner;

public class recursion {

public static String scale_Tobe(int base,int num){

String str="";

String wait="0123456789abcdef";

if(num==0){

// System.out.println(str);

return " ";

}

else{

str = scale_Tobe(base,num/base);

// String temp= String.valueOf(wait.charAt(num%base));

// System.out.println(str+temp);

return str+wait.charAt(num%base);//缀加

}

}

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.println("请输入您想转化的十进制数:");

int input_10= sc.nextInt();

System.out.println("请输入您想转化的进制(2-16之间哦)");

int input_base= sc.nextInt();

System.out.println("转化为"+input_base+"进制结果为:");

System.out.println(scale_Tobe(input_base,input_10));

}

}

非递归实现

package scale;

import java.util.Scanner;

public class nonerecursion {

public static String conversion(int num ,int base) {//base 进制 num 欲转换数据

String str = "";

int remainder;//余数

int consult = num;//商

while (consult > 0) {

remainder = num % base;

consult = consult / base;

//处理10-15之间a-f

if (remainder > 9) {

str = (char) ('a' + (remainder - 10)) + str;

} else {

str = remainder + str;

}

}

return str;

}

public static void main(String[] args) {

Scanner sc= new Scanner(System.in);

System.out.println("请输入您要转化的十进制数");

int input_num = sc.nextInt();

System.out.println("请输入您想转化成进制");

int input_base = sc.nextInt();

System.out.println(conversion(input_num,input_base));

}

}

}

四.运行截图

dfe0556c9875c273bd5702789fb9422e.png

递归调用过程

(求3—>2进制=11)

35bd4518ecda66aeae184be5a98e229d.png

java-递归及非递归实现十进制数向任意进制转换相关教程

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值