PAT乙级1022
題目鏈接
https://pintia.cn/problem-sets/994805260223102976/problems/994805299301433344
題解
很簡單,參考十進制轉二進制的方法,除二取余至商為0。
這里要注意:需要處理a+b等于0的情況(參考了https://blog.csdn.net/m0_37285185/article/details/68936069,我又沒發現邊界……My bad,this is not so me.)
// PAT BasicLevel 1022 // https://pintia.cn/problem-sets/994805260223102976/problems/994805299301433344#include <iostream> #include <stack> #include <string> using namespace std;string numBaseConversion(int num,int base);int main() {// 獲取a、b和dint a,b,base;cin >> a >> b >> base;// 進制轉換,輸出結果cout << numBaseConversion(a+b,base);//system("pause");return 0; }// 將一個十進制數轉換為base(1,10]進制的字符串 string numBaseConversion(int num, int base) {stack<char> charStack;string res="";// 處理num為0的情況if(num==0){return "0";}// 處理num非0的情況while(num>0){charStack.push(num%base+'0');num/=base;}while (!charStack.empty()){res+=charStack.top();charStack.pop();}return res; }作者:@臭咸魚
轉載請注明出處:https://www.cnblogs.com/chouxianyu/
歡迎討論和交流!
轉載于:https://www.cnblogs.com/chouxianyu/p/11309264.html
總結
- 上一篇: MM的Windows 7 登录密码忘记之
- 下一篇: (Easy) FizzBuzz Leet