标签:header return push space 提前 rip span continue 实现
7 2 23 12 -4 3
111 1B -11
提示:本题思路和上题几乎一样,多了个负数操作,多了个10以上进制的操作,10以上进制操作只需将数字转化为字符使之进栈即可,负数只需提前输出负号将其按正数处理即可。
代码实现如下(g++):
#include<bits/stdc++.h> using namespace std; int main() { int n,r; while(cin>>n>>r) { stack<char>s; if(n==0) { cout<<"0"<<endl;//0的任何进制都是0 continue; } else if(n<0) { cout<<"-"; n*=-1;//如果n是负数,将其变为正数同正数处理 } int t; while(n) { t=n%r; if(t<10) { t+=‘0‘; s.push(t); } else { t=t+‘A‘-10; s.push(t); } n/=r; } while(!s.empty()) { cout<<s.top(); s.pop(); } cout<<endl; } return 0; } /*************************************************** Result: Accepted Take time: 0ms Take Memory: 196KB ****************************************************/
标签:header return push space 提前 rip span continue 实现
原文地址:https://www.cnblogs.com/jkxsz2333/p/9487844.html