时间限制: 1 Sec 内存限制: 32 MB
提交: 918 解决: 522
题目描述
将十进制数转换为八进制,并输出。
图:将十进制数转换为八进制并输出
输入
输入包含若干十进制正整数。
输出
输出相应的八进制数,每个占一行。
样例输入
1 2 3 7 8 9 19 10020345
样例输出
1 2 3 7 10 11 23 46162771
提示
提示:
书上有相应的算法,需要补充缺失的函数。
总结:
1、数值转换使用到堆栈,但是用函数调用(系统的堆栈)将会更为方便。
2、书中的算法实际上只能处理正整数,你有更好的方法还能够处理0和负整数么?
代码实现
#include<iostream>
#include<stack>
using namespace std;
#define MAXSIZE 1000
char str[MAXSIZE];
void Conversion(int num,int b){
stack<int>S;
do{
S.push(num%b);
num/= b;
}while(num);
while(!S.empty()){
cout<<S.top();
S.pop();
}
cout<<endl;
}
int main()
{
int a,b;
while(cin>>a){
b = 8;
Conversion(a,b);
}
return 0;
}