赞
踩
任务描述:
输入一个 10 进制正整数n(取值范围:0<n<1000),然后输出它所对应的八进制(要求用模除取余,不得直接转换输出)
任务要求:
十进制数转八进制数的思想:
十进制数转八进制数的思想主要基于“除基取余”法,也称为“倒序取余”法。具体步骤如下:
举例来说,将十进制数136转换为八进制数的过程如下:
于是,从后往前读取余数,得到的八进制数是210。
整个过程可以用迭代或递归的方式来编程实现,也可以利用栈数据结构的特点,模拟“倒序取余”的过程。在实际编程中,特别是使用栈思想时,会将每次的余数压入栈内,最后弹出栈内元素即可得到从高位到低位的八进制数位。
代码示例:
- package march0317_0331;
-
- import java.util.Scanner;
-
- public class March0318 {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- System.out.println("请输入一个十进制正整数(0 < n < 1000):");
- int num = scanner.nextInt();
-
- // 验证输入是否在指定范围内
- if (num >= 0 && num < 1000) {
- System.out.println("转换成八进制为:" + method(num));
- } else {
- System.out.println("错误!输入值超出范围,请确保0 < n < 1000。");
- }
- }
-
- // 转换函数,仅使用模除取余法实现
- public static String method(int n) {
- // StringBuilder对象
- StringBuilder octalStr = new StringBuilder();
-
- while (n > 0) {
- // 将余数插入到字符串的开头
- octalStr.insert(0, n % 8);
- // 除以8,得到新的余数
- n /= 8;
- }
-
- // 返回结果
- return octalStr.toString();
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。