牛客题霸 [进制转换] C++题解/答案
生活随笔
收集整理的這篇文章主要介紹了
牛客题霸 [进制转换] C++题解/答案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
進制轉換
題目描述
給定一個十進制數M,以及需要轉換的進制數N。將十進制數M轉化為N進制數
題解:
看似簡單的進制轉換套路非常多
1.M是32位整數,有可能是負數,所以還要特判一下
2.N的范圍是[2,16],大于10要用ABCD來表示,所以要先建一個char數組方便轉換
3.M%N的結果要倒序輸出才可以,可以用棧來實現
找到了坑,就好說了
記得返回類型為string
代碼:
class Solution { public:/*** 進制轉換* @param M int整型 給定整數* @param N int整型 轉換到的進制* @return string字符串*/char ch[20]{"0123456789ABCDEF"};string solve(int M, int N) {// write code hereint flag=0;if(M<0){M=-M;flag=1;}stack<char> st;while(M){st.push(ch[M%N]);M/=N;}string s="";while(!st.empty()){s+=st.top();st.pop();}if(flag)s='-'+s;return s;} };總結
以上是生活随笔為你收集整理的牛客题霸 [进制转换] C++题解/答案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牛客题霸 [平衡二叉树] C++题解/答
- 下一篇: STM32F103学习笔记(4)——LC