问题 B: 算法3-1:八进制数

时间限制: 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;  
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值