⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 利用栈的基本操作实现将任意一个十进制整数转化为R进制整数
💻 CPP
字号:

//功能: 利用栈的基本操作实现将任意一个十进制整数转化为R进制整数

#include <iostream>
#include <stack>     //使用STL提供的 stack 类
#include <string>

using namespace std;

//以基数b输出整数num,
string output(int num, int b);

int main()
{
	int num,b;

	//提示输入>=0的数字和基数,基数范围是2<=B<=16
	cout<<"输入数字与基数"<<"(2<=基数<=16)"<<endl<<"或者 0 0 结束:";
	cin>> num >> b;

	//循环,直到用户输入基数0
	while (b!=0)
	{
		cout<<""<<num<<"转化"<<b<<"进制是"<<output(num,b)<<endl;
		cout<<"输入数字与基数"<<"(2<=基数<=16)"<<endl<<"或者 0 0 结束:";
		cin>> num >> b;
	}
	return 0;
}


//使用栈的LIFO特性,以字符形式顺序存储余数,把数字出栈到字符串numStr中,直到栈为空
string output(int num, int b)
{

	//string digitChar是表示数字digit的字符,0<=digit<=15
	string digitChar ="0123456789ABCDEF", numStr="";

	//栈容纳num在基数下各个数位的数字
	stack<char> stk;

	do
	{
		//将最右边的数字入栈
		stk.push(digitChar[num%b]);
		num /=b;        //从num中删除最右边的数字
	}
	while (num !=0);    //循环,直到找到所有数字
	while (!stk.empty())//清栈
	{
		numStr += stk.top();//将栈顶的数字附加到字符串
		stk.pop();        //出栈
	}
return numStr;
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -