NC112进制转换(四种语言+视频讲解)
进制转换
https://www.nowcoder.com/practice/2cc32b88fff94d7e8fd458b8c7b25ec1?tpId=188&&tqId=37376&rp=1&ru=/ta/job-code-high-week&qru=/ta/job-code-high-week/question-ranking
- 1、题目描述:
-3、 设计思想:
-4、视频讲解链接B站视频讲解
-5、代码:
c++版本:
class Solution { public: /** * 进制转换 * @param M int整型 给定整数 * @param N int整型 转换到的进制 * @return string字符串 */ string solve(int M, int N) { // write code here if(M == 0) return "0";//如果M=0就直接返回 bool flag = false;//记录是不是负数 if(M < 0){ //如果是负数flag=true,M 取相反数 flag = true; M = -M; } string res = "";//返回最终的结果 string jz = "0123456789ABCDEF";//对应进制的某一位 while(M != 0){//就对应转换为N进制的逆序样子 res += jz[M % N]; M /= N; } reverse(res.begin(),res.end());//逆序一下才是对应的N进制 if(flag) res.insert(0,"-");//如果是负数就在头位置插入一个-号 return res; } };
Java版本:
import java.util.*; public class Solution { /** * 进制转换 * @param M int整型 给定整数 * @param N int整型 转换到的进制 * @return string字符串 */ public String solve (int M, int N) { // write code here if(M == 0) return "0";//如果M=0就直接返回 boolean flag = false;//记录是不是负数 if(M < 0){ //如果是负数flag=true,M 取相反数 flag = true; M = -M; } String jz ="0123456789ABCDEF";//对应进制的某一位 StringBuffer res = new StringBuffer();//返回最终的结果 while(M != 0){//就对应转换为N进制的逆序样子 res.append(jz.charAt(M % N)); M /= N; } res.reverse();//逆序一下才是对应的N进制 if(flag) res.insert(0,"-");//如果是负数就在头位置插入一个-号 return res.toString(); } }
Python版本:
# # 进制转换 # @param M int整型 给定整数 # @param N int整型 转换到的进制 # @return string字符串 # class Solution: def solve(self , M , N ): # write code here if M == 0: return "0" #如果M=0就直接返回 flag = False #记录是不是负数 if M < 0 : #如果是负数flag=true,M 取相反数 flag = True M = -M jz = "0123456789ABCDEF" #对应进制的某一位 res = ""#返回最终的结果 while M != 0: #就对应转换为N进制的逆序样子 res += jz[M % N] M //= N if flag: #如果是负数就加一个-号 res += "-" return res[::-1] #直接逆序返回
JavaScript:
/** * 进制转换 * @param M int整型 给定整数 * @param N int整型 转换到的进制 * @return string字符串 */ function solve( M , N ) { // write code here if(M == 0) return "0";//如果M=0就直接返回 let flag = false;//记录是不是负数 if(M < 0){ //如果是负数flag=true,M 取相反数 flag = true; M = -M; } let jz ="0123456789ABCDEF";//对应进制的某一位 let res = [];//返回最终的结果 while(M != 0){//就对应转换为N进制的逆序样子 res.push(jz[M % N]); M = parseInt(M/N); } if(flag) res.push("-");//如果是负数就在头位置插入一个-号 return res.reverse().join("");//逆序一下才是对应的N进制 } module.exports = { solve : solve };
牛客题霸 文章被收录于专栏
本专栏主要是牛客题霸习题的讲解,有详细的考点分类,大家可以可以看看呦!!!