【刷题日记】504. 七进制数

简介: 本次刷题日记的第 3 篇,力扣题为:【刷题日记】504. 七进制数 ,简单

【刷题日记】504. 七进制数

本次刷题日记的第 3 篇,力扣题为:【刷题日记】504. 七进制数简单

一、题目描述:

image.png

二、思路分析:

1、这道题考察了什么思想?你的思路是什么?

看了这题的描述和示例,是比较简单的,对于 7 进制的题目,和 2 进制3 进制 等等都是类似的思想和做法,我们可以得到如下几个信息

  • 要求将一个整数,转换成对应的 7 进制数,输出的是字符串
  • 如果整数是负数,得到的字符串第一个字符是 -
  • 使用辗转相除法来进行处理,对于 N 进制都是可以处理的

按照上述给出示例,我们可以使用辗转相除法来推演一下,我记得这个还是学的时候学的方法:

用 100 除以 7 ,商 14,余数为 2

用 14 除以 7 ,商 2 ,余数为 0

用 2 除以 7 , 商 0,余数为 2

然后 7 进制就是余数组合在一起  "202",这里是会会有误解,以为会是从上至下,还是至下而上

image.png

那我们可以换另外一个数字,比如说 102

计算方式还是和上面一直,这里就不在赘述了

image.png

最后 102 的 7进制数是 , 204 , 不是 402 , 通过图中,我们可以看到,余数的组合是至下而上的

2、尝试编码

那么,根据上述的图示和逻辑,那么咱们不难写出类似于这样的代码

对于编码的时候,我们需要考虑一下,num 为 0 的情况,和 num 为负数的情况

func convertToBase7(num int) string {
    // 处理 负数的情况
    res := ""
    yu := 0
    var tmp int
    if num < 0{
       tmp = 0 - num
       res = "-"
    }else{
        tmp = num
    }
    tmpStr := make([]string,0)
    for {
         yu = tmp % 7 // 取余
         tmp = tmp / 7  // 求商
         tmpStr = append(tmpStr,strconv.Itoa(yu))
         if tmp == 0 {
             break
         }   
    }
    for i:=len(tmpStr)-1;i>=0;i--{
        res += tmpStr[i]
    }
    return res
}

上面代码也非常简单

  • 第一步处理负数的情况
  • 第二步处理余数和商的关系,并把余数放到一个数组里面
  • 第三步反向遍历该数组,得到结果

四、总结:

上述这是一种常规且简单的做法,官方的方式是  倒推 + 迭代  ,可以看看如下官方代码,有没有另外的启发了,感兴趣的可以看看 leetcode-cn.com/problems/ba…

image.png

今天就到这里,学习所得,若有偏差,还请斧正

欢迎点赞,关注,收藏

朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力

image.png

好了,本次就到这里

技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。

我是阿兵云原生,欢迎点赞关注收藏,下次见~


相关文章
|
8月前
|
C语言
【C语言程序设计——循环程序设计】鸡兔同笼问题(头歌实践教学平台习题)【合集】
本教程介绍了循环控制和跳转语句的使用,包括 `for`、`while` 和 `do-while` 循环,以及 `break` 和 `continue` 语句。通过示例代码详细讲解了这些语句的应用场景,并展示了如何使用循环嵌套解决复杂问题,如计算最大公因数和模拟游戏关卡选择。最后,通过鸡兔同笼问题演示了穷举法编程的实际应用。文中还提供了编程要求、测试说明及通关代码,帮助读者掌握相关知识并完成任务。 任务描述:根据给定条件,编写程序计算鸡和兔的数量。鸡有1个头2只脚,兔子有1个头4只脚。
401 5
|
8月前
|
Web App开发 编解码 vr&ar
使用Web浏览器访问UE应用的最佳实践
在3D/XR应用开发中,尤其是基于UE(虚幻引擎)开发的高精度场景,传统终端因硬件局限难以流畅运行高帧率、复杂效果的三维应用。实时云渲染技术,将渲染任务转移至云端服务器,降低终端硬件要求,确保用户获得流畅体验。具备弹性扩展、优化传输协议、跨平台支持和安全性等优势,适用于多种终端和场景,特别集成像素流送技术,帮助UE开发者实现低代码上云操作,简化部署流程,保留UE引擎的强大开发能力,确保画面精美且终端轻量化。
355 17
使用Web浏览器访问UE应用的最佳实践
|
10月前
|
人工智能 运维 监控
智能运维在现代数据中心的应用与挑战
随着云计算和大数据技术的迅猛发展,现代数据中心的运维管理面临着前所未有的挑战。本文探讨了智能运维技术在数据中心中的应用,包括自动化监控、故障预测与诊断、资源优化等方面,并分析了当前面临的主要挑战,如数据安全、系统集成复杂性等。通过实际案例分析,展示了智能运维如何帮助数据中心提高效率、降低成本,并提出了未来发展趋势和建议。
|
10月前
|
数据采集 机器人 计算机视觉
一手训练,多手应用:国防科大提出灵巧手抓取策略迁移新方案
【10月更文挑战第24天】国防科技大学研究人员提出了一种新颖的机器人抓取方法,通过学习统一的策略模型,实现不同灵巧夹具之间的策略迁移。该方法分为两个阶段:与夹具无关的策略模型预测关键点位移,与夹具相关的适配模型将位移转换为关节调整。实验结果显示,该方法在抓取成功率、稳定性和速度方面显著优于基线方法。论文地址:https://arxiv.org/abs/2404.09150
147 1
|
Ubuntu Linux 网络安全
准备搞OpenStack了,先装一台最新的Ubuntu 23.10
准备搞OpenStack了,先装一台最新的Ubuntu 23.10
|
IDE API 数据处理
 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Slider组件
 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Slider组件
378 7
|
Python
Python 代码绘制航海王四皇大妈(BIG MOM) - 门卫大爷也能跟着学会的Turtle海龟绘图系列
Python 代码绘制航海王四皇大妈(BIG MOM) - 门卫大爷也能跟着学会的Turtle海龟绘图系列
220 0
|
缓存 IDE NoSQL
【Linux】Linux环境基础工具的基本使用及配置(yum、vim)(上)
【Linux】Linux环境基础工具的基本使用及配置(yum、vim)(上)
|
存储 JSON 5G
短视频批量制作-常用功能
越来越多的产品选择使用短视频作为内容承载,通过对媒体素材进行简单的剪辑,即可进行使用和投放,本文基于智能媒体服务IMS,介绍短视频剪辑中的常用功能,通过对不同功能的组合,方便客户组装自己的剪辑场景,进行短视频批量合成。
476 0
短视频批量制作-常用功能
|
iOS开发 MacOS Windows
比微信文件传输助手更好用的传输工具|Telegram
比微信文件传输助手更好用的传输工具|Telegram