蓝桥杯 算法提高 进制转换

来源:互联网 发布:生产线显示屏 网络 编辑:程序博客网 时间:2024/06/07 05:46


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

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

#include<iostream>#include<string>#include<stack>#include<cmath>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"<<endl;exit(0);}cout <<s<<" ";for(i=len-1;i>=0;i--){                    //16-10int 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 <<dec<<" ";stack<int> st;                           //10-8int t=dec;while(t>0){st.push(t%8);t/=8; }while(!st.empty()){cout <<st.top();st.pop();}return 0;}



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