进制转换签到题,10进制转13进制。
虽然是签到题,但我还是写麻烦了。
先附上自己的代码:
#include <iostream>
using namespace std;
char ABC(int x){
if(x % 13 == 10) return 'A';
else if(x % 13 == 11) return 'B';
else if(x % 13 == 12) return 'C';
else return (x%13)+'0';
}
void dec_13(int x){
char z[10], num = 0;
do{
z[num++] = ABC(x);
x= x/13;
} while(x != 0);
if(num == 1) printf("0%c", z[0]);
else if(num == 2) printf("%c%c", z[1], z[0]);
}
int main(){
int x, y, z;
scanf("%d %d %d", &x, &y, &z);
printf("#");
dec_13(x);
dec_13(y);
dec_13(z);
return 0;
}
虽然说是进制转化哈,但是这题并不需要用那种10进制转q进制的代码来写。
附上别人代码:
#include<cstdio>
int main(){
int a;
char radix[17]={"0123456789ABC"};//开的数组
printf("#");
for(int i=0;i<3;i++){
scanf("%d",&a);
printf("%c%c",radix[a/13],radix[a%13]);//还是那个,“/”取前面的数,
}//“%”取后面的数,但是13进制后面是字符,ABC,所以开个数组对应起来
return 0;
}
感觉自己像个憨憨QAQ……
有的时候并不需要拘泥于一些框架,框架有可能会限制我们的思维。