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

504.七进制数

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

504.七进制数

1. 题目描述

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

输入: num = 100
输出: “202”
输入: num = -7
输出: “-10”

2. 解题思路

十进制转换为n进制,用短除法即可,给定的数字不断除n,取余直至商为0。注意输入有正有负,还有0,需要区分这三种情况。

  • C++
class Solution {
public:
    string convertToBase7(int num) {
        if(num==0) return to_string(num); 
        string res="";
        bool flag=false; //通过flag来控制正负
        if(num<0){
            num = -num;
            flag=true;
        }
        while(num!=0){
            res += to_string(num%7); //取余数
            num /= 7; // 取商
        }
        if(flag) res += "-";
        reverse(res.begin(), res.end()); // 高位到低位排序
        return res;
    }
};
  • python
class Solution:
    def convertToBase7(self, num: int) -> str:
        if num == 0:
            return '0'
        flag = True
        if num < 0:
            flag = False
            num = -num
        res = []
        while num != 0:
            num, i = divmod(num, 7) # divmod函数返回商和余数
            res.append(str(i))
        res.reverse()
        if flag:
            return ''.join(res)
        else:
            return '-' + ''.join(res)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1008789.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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