当前位置: 首页 > news >正文

leetcode:504. 七进制数

一、题目:

链接:

504. 七进制数 - 力扣(LeetCode)

 

函数原型:

char* convertToBase7(int num)

二、思路

本题要将十进制数转换为二进制数,只要将十进制num数模7再除7,直到num等于0

每次将模7的结果存储到字符串ans中,存储完后字符串末尾还要加上 '\0' ,由于是逆序存储,因此存储完后需要逆置字符串。

如何将数字转换为字符,请看博客:字符与数字的相互转换_字符和数字之间的转换-CSDN博客

还需要注意,如果num为负数,先将其当作正数去转换,最后在字符串ans末尾加上字符 ‘-’ 即可。

三、代码:

void reserve(char* str)//逆置字符串函数
{int len = strlen(str);int left = 0;int right = len - 1;while (left <= right){char tmp = str[left];str[left] = str[right];str[right] = tmp;left++; right--;}
}char* convertToBase7(int num) {if(num==0)//对于num为0的情况,直接返回"0"即可{return "0";}char* ans = (char*)calloc(32, sizeof(char));//申请一块空间,存放字符串if (ans == NULL)//判断是否申请成功{perror("malloc fail");exit(-1);}int i = 0;//下标int Num = abs(num);//取num的绝对值while (Num > 0){ans[i++] = Num % 7 + '0';//将num取模的结果存储到字符串ans中Num = Num / 7;//num除7}if (num < 0)//num为负数{ans[i++] = '-';//需要在字符串末尾加上负号ans[i] = '\0';//字符串末尾加上结束标志\0}else//num为整数{ans[i] = '\0';//字符串末尾加上结束标志\0}reserve(ans);//逆置字符串ansreturn ans;//返回ans
}
http://www.lryc.cn/news/237797.html

相关文章:

  • centos安装指定版本docker
  • PPT幻灯片里的图片,批量提取
  • 《Fine-Grained Image Analysis with Deep Learning: A Survey》阅读笔记
  • 【网络安全】伪装IP网络攻击的识别方法
  • redis非关系型数据库
  • LeetCode 0053. 最大子数组和:DP 或 递归(线段树入门题?)
  • 二十三种设计模式全面解析-解密职责链模式:请求处理的设计艺术
  • 【linux】安装telnet
  • 深入探索 PaddlePaddle 中的计算图
  • 西南科技大学814考研一
  • 【网络编程】简述TCP通信程序,三次握手,四次挥手
  • 【ARM Trace32(劳特巴赫) 使用介绍 5 -- Trace32 ELF 文件加载介绍】
  • Linux(4):Linux文件与目录管理
  • Altium Designer学习笔记2
  • Atlassian发布最新补贴政策,Jira/Confluence迁移上云最低可至零成本
  • 基于FPGA的五子棋(论文+源码)
  • QT5 MSVC2017 64bit配置OpenCV4.5无需编译与示范程序
  • windows如何查看自己的ip地址
  • Camera2的使用【详细】
  • Playcanvas后处理-辉光bloom
  • GCC 学习
  • 2023数维杯数学建模C题完整版本
  • 快速解密PPT幻灯片密码,让PPT重见天日
  • 十六、RabbitMQ快速入门
  • C#WPF用户控件及自定义控件实例
  • 大模型的语言能力
  • 直播岗位认知篇
  • 后端技术知识点内容-全部内容-面试宝典-后端面试知识点
  • 3.ubuntu20.04环境的ros搭建
  • 米诺地尔行业分析:预计2029年将达到14亿美元