zoukankan      html  css  js  c++  java
  • 进制转换--力扣第504题

    题目:

    给定一个整数,将其转化为7进制,并以字符串形式输出。

    分析:

    核心就是十进制转换为七进制,做法就是利用/和%这两个运算符,%为了计算当前进制位应该表示为几(从右向左),/是为了从左向右计算在当前的进制位下是否应该继续向左延申,即如果在截止到当前进制位表达不够输入的十进制数,

    那就要向左延申进制位,每次延申都会除以7,除以7是因为逢7进位。

    比如  100转为7进制数,

      100%7=2,100/7=14,当前进制位是七进制数第一位,该位数值是2

      14%7=0,14/7=2,当前进制位是七进制第二位,由于余数为0,该位数值为0

      此时 2 > 7,停止循环,最终的100的七进制数就是202

    具体的代码实现如下:

        public String convertToBase7(int num) {
            if (num < 7 && num > -7){
                return num+"";
            }
            int flag = 0;
            if (num < 0){
                flag = 1;
                num = Math.abs(num);
            }
            StringBuilder res = new StringBuilder("");
            int y = num % 7;
            int n = num / 7;
            res = res.append(y);
            while(n >= 7){
                y = n % 7;
                n = n / 7;
                res.append(y);
            }
            res.append(n);
            if (flag == 1){
                res.append('-');
            }
            return res.reverse().toString();
        }

    此外,Java很贴心,Integer类自带了有将一个十进制数转为指定进制数,并转换为字符串的函数,即 static String toString(int num, int radix) 可以将一个整数转换为 radix 进制表示的字符串。

    public String convertToBase7(int num) {
        return Integer.toString(num, 7);
    }
  • 相关阅读:
    域名、主机名、网站名以及 URL 基础概念
    c# oracle 数据库连接以及参数化查询
    c# 委托(Func、Action)
    xcode pod install 安装失败,提示缺少文件
    一个服务器的IIS只能绑定一个HTTPS也就是443端口
    APP UI设计及切图规范
    Day7 字符串和常用数据结构
    Day6 函数和模块的使用
    Day5 练习
    python 疑难杂症
  • 原文地址:https://www.cnblogs.com/yxym2016/p/12969439.html
Copyright © 2011-2022 走看看