栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【第13天】给定一个十进制数字 B ,请你把它转换为R进制打印 | 进制转换

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【第13天】给定一个十进制数字 B ,请你把它转换为R进制打印 | 进制转换

本文已收录于专栏
《Java入门一百例》

学习指引
  • 序、专栏前言
  • 序、本章前言
  • 一、【例题1】
    • 2、解题思路
    • 3、模板代码
      • 1、方法1
      • 2、方法2
    • 4、代码解析
  • 二、推荐专栏
  • 三、课后习题

序、专栏前言

   本专栏开启,目的在于帮助大家更好的掌握学习Java,特别是一些Java学习者难以在网上找到系统地算法学习资料帮助自身入门算法,同时对于专栏内的内容有任何疑问都可在文章末尾添加我的微信给你进行一对一的讲解。
   但最最主要的还是需要独立思考,对于本专栏的所有内容,能够进行完全掌握,自己完完全全将代码写过一遍,对于算法入门肯定是没有问题的。
   算法的学习肯定不能缺少总结,这里我推荐大家可以到高校算法社区将学过的知识进行打卡,以此来进行巩固以及复习。
  学好算法的唯一途径那一定是题海战略,大量练习的堆积才能练就一身本领。专栏的任何题目我将会从【题目描述】【解题思路】【模板代码】【代码解析】等四板块进行讲解。

序、本章前言

  进制转换的考点是非常常见的,上篇文章讲解的是任意进制转十进制,而本章讲的是十进制转任意进制,大家可以区分一下两者的区别。进而拓展出如何实现任意X进制转R进制。

一、【例题1】

  给定一个十进制的整数 d d d,请你输出它的R进制表示的值。 ( 1 < R < 10 ) (1

2、解题思路

  题目难度:⭐️

  首先要明确,题目明确表示R的进制数不会超过10。这就说明我们用不到字符映射,因为十进制以上我们需要用到字母去表示11,12等数字。这里的转换我们需要通用一个模板即可。

3、模板代码 1、方法1
import java.util.Scanner;
public class Main{
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int d=sc.nextInt();
        int r=sc.nextInt();
        System.out.println(test(d,r));
    }
    public static String test(int arr,int r) {
        StringBuilder sb = new StringBuilder();
        if (arr == 0) return "0";
        boolean flag = arr < 0;
        arr = Math.abs(arr);
        //核心步骤
        while (arr != 0) {
            sb.append(arr % r);
            arr /= r;
        }
        if (flag) sb.append("-");
        return sb.reverse().toString();
    }
}
2、方法2
import java.util.Scanner;
public class Main{
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int d=sc.nextInt();
        int r=sc.nextInt();
        System.out.println(Integer.toString(d,r));
    }
}
4、代码解析

解析

  • ( 1 ) (1) (1) t e s t test test方法就是一个转换的模板方法,主要的核心步骤在于while循环,不断取余然后整除。其他的步骤主要在于判断负数的情况,最后的答案需要反转一下。
  • ( 2 ) (2) (2)之所以没有细讲方法 1 1 1,是因为Java的Integer类有重载的toString方法,可以将一个十进制数转换成任意的R进制。非常方法,所以Java语言根本不需要担心该问题,感兴趣的也可以研究下该方法的源码。
二、推荐专栏
《零基础学算法100天》
三、课后习题
序号题目链接难度评级
1七进制数1
 学习有疑问?
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/947750.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号