算法提高 进制转换
2017-01-20 15:26
211 查看
1111: 算法提高 进制转换
时间限制: 1 Sec 内存限制: 256 MB提交: 2 解决: 1
[提交][状态][讨论版]
题目描述
程序提示用户输入三个字符,每个字符取值范围是0-9,A-F。然后程序会把这三个字符转化为相应的十六进制整数,并分别以十六进制,十进制,八进制输出。
输入
输入只有一行,即三个字符。
输出
输出只有一行,包括三个整数,中间用空格隔开。
样例输入
FFF
样例输出
FFF 4095 7777
提示
来源
注意输入的为 “000"的情况,要输出 0 0 0;#include<iostream> #include<string> #include<stdio.h> #include<string.h> using namespace std; int b10(char a[])//转化为10 { int sum=0,i,k,temp; for(i=strlen(a)-1;i>=0;i--) { if(i==strlen(a)-1) k=1; else k=k*16; if(a[i]>='0'&&a[i]<'10') temp=a[i]-'0'; if(a[i]=='A') temp=10; if(a[i]=='B') temp=11; if(a[i]=='C') temp=12; if(a[i]=='D') temp=13; if(a[i]=='E') temp=14; if(a[i]=='F') temp=15; sum=temp*k+sum; } return sum; } void b8(int n)//将十进制转换为八进制 { int a[300],i=0,j; while(n) { a[i++]=n%8; n=n/8; } for(j=i-1;j>=0;j--) cout<<a[j]; } int main() { char b[40]; int i,n,sum=0; for(i=0;i<3;i++) { cin>>b[i]; if(b[i]=='0') sum++; } //特殊情况输入的全为0; if(sum==3) cout<<"0 0 0"<<endl; else { for(i=0;i<strlen(b);i++) cout<<b[i]; cout<<" "; cout<<b10(b)<<" "; n=b10(b); b8(n); } return 0; }
[提交][状态]
相关文章推荐
- 蓝桥杯 ADV-239 算法提高 P0102 (进制转换) (java)
- 蓝桥杯 算法提高 进制转换
- 算法提高 ADV-117 进制转换
- 蓝桥杯算法提高 复数归一化
- 蓝桥杯 ADV-98 算法提高 约数个数
- 【ShawnZhang】带你看蓝桥杯——算法提高 算法训练 暗恋
- 算法笔记_102:蓝桥杯练习 算法提高 快乐司机(Java)
- 算法提高 9-3摩尔斯电码
- 算法提高 判断名次
- 算法提高 排队打水问题 无聊刷个水题
- 蓝桥杯 算法提高 最大乘积
- 蓝桥杯 算法提高 特殊的质数肋骨
- 算法提高 11-1实现strcmp函数 java版
- ADV-188 算法提高 排列数
- 蓝桥杯 ADV-187 算法提高 勾股数
- 蓝桥杯 ADV-109 算法提高 征税程序
- 蓝桥杯 算法提高 ADV131
- 蓝桥杯 算法提高 排列式
- 算法提高 P1001
- 蓝桥杯 算法提高 01背包(Java解题)