蓝桥杯 算法提高 进制转换



  算法提高 进制转换  
时间限制:1.0s   内存限制:256.0MB
    
问题描述
  程序提示用户输入三个字符,每个字符取值范围是0-9,A-F。然后程序会把这三个字符转化为相应的十六进制整数,并分别以十六进制,十进制,八进制输出。
  输入格式:输入只有一行,即三个字符。
  输出格式:输出只有一行,包括三个整数,中间用空格隔开。
  输入输出样例
样例输入
FFF
样例输出
FFF 4095 7777

16进制转10进制后,利用转来的十进制数直接来转换成八进制,
借助了刚学的数据结构中的stack的知识。
这题要注意当输入为000时的输出格式是:0 0 0

#include
#include
#include
#include
using namespace std;
int main()
{
	string s;
	cin >>s;
	int i,len=s.length(),dec=0;
	if(s[0]==s[1]&&s[1]==s[2]&&s[0]=='0'){
		cout <<"0 0 0"<=0;i--){                    //16-10
		int t;
		switch(s[i]){
			case'0':t=0;break;
			case'1':t=1;break;
			case'2':t=2;break;
			case'3':t=3;break;
			case'4':t=4;break;
			case'5':t=5;break;
			case'6':t=6;break;
			case'7':t=7;break;
			case'8':t=8;break;
			case'9':t=9;break;
			case'A':t=10;break;
			case'B':t=11;break;
			case'C':t=12;break;
			case'D':t=13;break;
			case'E':t=14;break;
			case'F':t=15;break;
			default:break;
		}
		dec+=pow(16,len-i-1)*t;
	}
	cout < st;                           //10-8
	int t=dec;
	while(t>0){
		st.push(t%8);
		t/=8; 
	}
	while(!st.empty())
	{
		cout <



  算法提高 进制转换  
时间限制:1.0s   内存限制:256.0MB
    
问题描述
  程序提示用户输入三个字符,每个字符取值范围是0-9,A-F。然后程序会把这三个字符转化为相应的十六进制整数,并分别以十六进制,十进制,八进制输出。
  输入格式:输入只有一行,即三个字符。
  输出格式:输出只有一行,包括三个整数,中间用空格隔开。
  输入输出样例
样例输入
FFF
样例输出
FFF 4095 7777

你可能感兴趣的:(蓝桥杯)