编写函数,用栈实现十进制转换为二进制的操作。假定堆栈的基本操作已实现,基本操作有voidpush (elemtype e)/l入栈,elemtype pop()//出栈,voidinitial_s

/*
编写函数,用栈实现十进制转换为二进制的操作。假定堆栈的基本操作已实现,
基本操作有voidpush (elemtype e)/l入栈,elemtype pop()//出栈,
voidinitial_stack ()//初始化栈,int is_empty(stack s)//
*/

#include <stack>
#include <iostream>
using namespace std;

stack<int> s;

void conversion_binary(int e)//change decimal to binary(change e -> result)
{
	s.push(e % 2);
	int divisor = e / 2;
	
	while(divisor >= 1)// divisor == 0
	{
		s.push(divisor % 2);
		divisor = divisor / 2;
	}
	
	cout << "result is :";

	while( s.empty() == false )//s.empty() 为空 返回 1,不为空 返回 0
	{
		cout << s.top() << " ";//用 s.top()获取 栈顶 元素 
		s.pop();//s.pop() 不会 删除栈顶元素后 不会返回值,每一次删除栈顶元素 s.top()会减一 
	}
	
	cout << endl;
	
}

//main function
int main()
{
	int e;
	cin >> e;
	
	conversion_binary(e);
	
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值