【刷题点滴】进制转换

news/2025/2/13 0:15:55/

进制转换

DD5 进制转换 牛客

描述
给定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数
输入描述:
输入为一行,M(32位整数)、N(2 ≤ N ≤ 16),以空格隔开。
输出描述:
为每个测试实例输出转换后的数,每个输出占一行。如果N大于9,则对应的数字规则参考16进制(比如,10用A表示,等等)

我的思路:

#include <iostream>
#include <cmath>
#include <string>
using namespace std;const string value = "0123456789ABCDEFG";int main()
{long long M, N;cin >> M >> N;string res;if(M == 0) res = "0";if(M < 0) res += "-";M = abs(M);int t = 0;while (pow(N, t) <= M){t++;}t--;//这就是在N进制下最高的位数for (int i = t; i >= 0; i--){int lo = M / (long long)pow(N, i);M -= lo * pow(N, i);res += value[lo];}cout << res << endl;
}

其他思路1

这个思路的本质就是:先求在个位(零次方位)的个数,再去掉个位(零次方位),十位(一次方位)就变成了新的个位,继续按照这个方法计算。

当时我陷入了误区,其实拿10进制对比一下就好了,比如:

195 / 10 = 19……5
19 / 10 = 1……9
1 / 10 = 0……1

如果没有余数,说明这个位置的数字就是0。比如在二进制下个位不可能是3,为什么,因为3一定会被分为2+1,2会去下一个进制位。

根据这样的算法思路可以写出更加优秀的代码:

#include <iostream>
#include <cmath>
#include <string>
#include <algorithm>
using namespace std;const string value = "0123456789ABCDEFG";int main()
{long long M, N;cin >> M >> N;string res;bool flag = false;if(M == 0) res = "0";else if(M < 0) flag = true;M = abs(M);while(M != 0){res += value[M%N];M /= N;}reverse(res.begin(),res.end());if(flag){res.insert(0, "-");}cout << res << endl;
}

http://www.ppmy.cn/news/862572.html

相关文章

17届智能车竞赛技术报告-极速越野 | 南昌大学-闪电小飞侠

学 校&#xff1a;南昌大学     队伍名称&#xff1a;闪电小飞侠   参赛队员&#xff1a;龚浩宇 、曹禹源带队教师&#xff1a;黄玉水 、胡奕涛 #mermaid-svg-lWYOzh4FrFCtIYQJ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#3…

Java线程:并发编程的艺术

简介&#xff1a; 在现代计算机应用程序中&#xff0c;多线程编程已成为不可或缺的一部分。Java作为一门广泛应用于企业级应用开发的语言&#xff0c;提供了丰富的线程支持和并发编程工具。本文将深入探讨Java线程的概念、创建和管理线程的方法&#xff0c;以及常见的并发编程模…

ppt修改母版格式

ppt中修改母版样式 在视图中点击幻灯片母版 在幻灯片目录中右键 点击情节提要 点击编辑布局

如何在Java中进行数据库连接和操作?

首先&#xff0c;我们要进行数据库连接。想象一下&#xff0c;你要和一位漂亮的女孩子约会&#xff0c;你需要做什么呢&#xff1f;没错&#xff0c;你需要知道怎么到达她的家&#xff0c;并在正确的时间出现在她面前。数据库连接就像是和这个女孩交往的过程。 现在&#xff0…

【低代码专题方案】使用iPaaS平台下发数据,快捷集成MDM类型系统

01 场景背景 伴随着企业信息化建设日趋完善化、体系化&#xff0c;使用的应用系统越来越多&#xff0c;业务发展中沉淀了大量数据。主数据作为数据治理中枢&#xff0c;保存大量标准数据库&#xff0c;如何把庞大的数据下发到各个业务系统成了很棘手的问题。 传统的数据下发方…

提取斗鱼直播源的图文教程

给个斗鱼直播的源&#xff0c;喜欢用Pot看的可以用 [http://hdl3.douyutv.com/live/19002rimbadota.flv?wsSecret88673816d6ec6904829400a8e0d02d03&wsTime1463307547] 1.首先打开douyu&#xff0c;选在Dota2分类。 2.在这个页面内&#xff0c;按下F12按键&#xff0c;会出…

小程序也能看游戏直播——斗鱼直播小程序测评

斗鱼直播微信小程序测评 斗鱼直播小程序类别 影音/视频 斗鱼直播小程序功能 斗鱼直播的官方小程序版本。 斗鱼直播小程序的优势特色 斗鱼直播&#xff0c;相信不用我做过多介绍了吧。作为直播的几大热门网站之一&#xff0c;斗鱼直播算是赫赫有名了。斗鱼捧红了不少网红&…

斗鱼直播推流命令

1fmpeg -re -i “mv2.mp4” -vcodec copy -acodec aac -b:a 192k -f flv “rtmp://send1.douyu.com/live/501101rTfVnBRoN9?wsSecretf078502ee67d491c8b30fa26ad17a3de&wsTime599fbe0e&wsSeekoff” ffmpeg -re -i “mv2.flv” -c copy -f flv “rtmp://send1.douyu.c…