POJ 3255 十进制到六进制
- 时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
- 进制转换: 将十进制(不超过int类型表示的范围)的数转换为六进制的数.
- 输入
- 输入为第一行是组数n,后面n行是需要进制转换的十进制数.
- 输出
- 进制转换后的n行六进制数。
- 样例输入
-
31346265
- 样例输出
-
211141121
(1)、源代码:
#include <iostream>
#include <stack>
#include <cmath>
using namespace std;
void change(int data){
stack<int>s;
if(0 == data)
cout << "0";
else if(data < 0){
int temp = abs(data);
while(0 != temp){
s.push(temp%6);
temp /= 6;
}
cout << "-";
while(!s.empty()){
cout << s.top();
s.pop();
}
}
else{
while(0 != data){
s.push(data%6);
data /= 6;
}
while(!s.empty()){
cout << s.top();
s.pop();
}
}
cout << endl;
}
int main(){
int i, n, num;
cin >> n;
for(i = 0; i < n; i++){
cin >> num;
change(num);
}
return 0;
}
(2)、解题思路:略
(3)、可能出错:注意0和负数。