网站首页 > 精选教程 正文
在 Java 中,你可以使用栈来实现进制转换。栈是一种数据结构,其中数据是按照 “后进先出”(Last In, First Out)的顺序排列的。
第一种:使用栈实现进制转换的示例代码:
import java.util.Scanner;
import java.util.Stack;
/*
使用栈实现进制转换的示例代码
*/
public class BaseConversion {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个数字: ");
int num = scanner.nextInt();
System.out.print("请输入需要转换的进制: ");
int base = scanner.nextInt();
Stack<Integer> stack = new Stack<>();
while (num > 0) {
int rem = num % base;
stack.push(rem);
num = num / base;
}
System.out.print("转换后的结果是:");
while (!stack.isEmpty()) {
System.out.print(stack.pop());
}
}
}
在上面的代码中,我们首先将输入的数字 num 和要转换的进制 base 作为参数传入函数。然后,我们使用一个循环来不断地将 num 除以 base,并将余数压入栈中。最后,我们使用另一个循环来将栈中的数字逐一弹出,并输出。
在这个示例中结果:
第二种:使用递归。你可以通过不断地递归地调用函数来实现进制转换。例如,下面是使用递归实现进制转换的示例代码:
import java.util.Scanner;
/*
实现进制转换的示例代码
*/
public class BaseConversion {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个数字: ");
int num = scanner.nextInt();
System.out.print("请输入需要转换的进制: ");
int base = scanner.nextInt();
System.out.print("转换后的结果是:");
System.out.println(convert(num, base));
}
public static String convert(int num, int base) {
StringBuilder sb = new StringBuilder();
if (num > 0) {
sb.append(convert(num / base, base));
sb.append(num % base);
}
return sb.toString();
}
}
第三种:常见的方法是使用数学方法来实现进制转换。你可以使用模运算(%)来获取数字的余数,然后使用除法运算(/)来获取数字的商。例如,下面是使用数学方法实现进制转换的示例代码:
import java.util.Scanner;
/*
实现进制转换的示例代码
*/
public class BaseConversion {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个数字: ");
int num = scanner.nextInt();
System.out.print("请输入需要转换的进制: ");
int base = scanner.nextInt();
System.out.print("转换后的结果是:");
System.out.println(convert(num, base));
convert(num, base);
}
private static String convert(int num, int base) {
StringBuilder sb = new StringBuilder();
while (num > 0) {
sb.append(num % base);
num = num / base;
}
String result = sb.reverse().toString();
return result;
}
}
总结一下上面提到的三种方法:
- 使用栈实现进制转换:在这种方法中,我们使用栈来存储转换后的数字。首先,我们将输入的数字除以要转换的进制,并将余数压入栈中。使用另一个循环来将栈中的数字逐一弹出,并输出。
- 使用递归实现进制转换:在这种方法中,我们使用递归来实现进制转换。我们调用函数时,不断地将输入的数字除以要转换的进制,并将余数添加到字符串中。将字符串反转并输出。
- 使用数学方法实现进制转换:在这种方法中,我们使用模运算和除法运算来实现进制转换。我们不断地将输入的数字除以要转换的进制,并将余数添加到字符串中。将字符串反转并输出。
猜你喜欢
- 2024-12-03 「Java系列」八大排序算法
- 2024-12-03 Java 经典编程(三) 之数据类型与运算符
- 2024-12-03 流收集器:一种操作JAVA流的新方法
- 2024-12-03 Java基础教程2-用Java实现数学中的基本运算与Java的输入输出
- 2024-12-03 用java判断数字的奇偶性原来这么的简单
- 2024-12-03 Java基础知识
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)