前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OJ刷题记录:将十进制数转换成八进制数 题目编号:545

OJ刷题记录:将十进制数转换成八进制数 题目编号:545

作者头像
英雄爱吃土豆片
发布2020-10-29 10:57:42
6700
发布2020-10-29 10:57:42
举报
文章被收录于专栏:英雄爱吃土豆片

将十进制数转换成八进制数 题目编号:545

题目要求: 将三个十进制数分别转换成八进制数,建议使用栈来实现。

输入描述 输入三个十进制数,每个占一行。 输出描述 输出每个十进制数所对应的八进制数,每个占一行。 输入样例 256 189 15 输出样例 400 275 17

解题思路: 一个十进制整数转换为八进制表示的数时,可按除 8 取余的方法进行。高进制转换为低进制时先取得的余数为低位数,而进制转换时我们需要从高位到低位,所以我们将所得余数依次压入栈,因为栈先进后出,输出时即可实现从高位到低位的结果输出。

通关代码:

代码语言:javascript
复制
#include <iostream> 

#define LENGTH 10

using namespace std;

class Stack {
	public:
		Stack():top_(-1) {}
		
	public:
		void Push(int val);
		void Pop();
		void Print();
		
	private:
		int list_[LENGTH];
		int top_;
};

void Stack::Push(int val) {
	top_++;
	list_[top_] = val;
}

void Stack::Pop() {
	top_--;
}

void Stack::Print() {
	while (top_ != -1) {
		cout << list_[top_];
		top_--;
	}
	cout << endl;
}

void printOctal(int decimal) {
	Stack res;
	
	while (decimal != 0) {
		res.Push(decimal % 8);
		decimal = decimal / 8;
	}
	
	res.Print();
}

int main() {
	int a, b, c;
	
	cin >> a >> b >> c;
	
	printOctal(a);
	printOctal(b);
	printOctal(c);
	
	return 0;
}

毕。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/09/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 将十进制数转换成八进制数 题目编号:545
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档