ALGO-473
资源限制
内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
问题描述
用户输入三个字符,表示一个十五进制整数,每个字符取值范围是0-9或A-E,请编写程序将这三个字符转化为相应的七进制整数,并输出。七进制数表示成4位,若不够4位则前面补0。(不考虑输入不合法的情况)
样例输入
04A
样例输出
0130
分析:先将15进制转换成10进制,再转换成七进制
#include<stdio.h>
#include<math.h>
int main() {
char str[4], res[4];
int i, sum=0, x, count=0;
gets(str);
for(i=0; i<3; i++) {
if(str[i]=='A') {
x=10;
} else if(str[i]=='B') {
x=11;
} else if(str[i]=='C') {
x=12;
} else if(str[i]=='D') {
x=13;
} else if(str[i]=='E') {
x=14;
} else {
x=str[i]-48;//因为0的ASCLL码为48
}
sum+=x*pow(15,3-i-1);
}
// printf("%d", sum);
for(i=0; ;i++){
res[i]=sum%7;
sum=sum/7;
count++;
if(sum==0){
break;
}
}
for(i=0;i<count;i++){
sum+=res[i]*pow(10,i);
}
printf("%04d", sum);
return 0;
}