代码:
#include<iostream>
#include<string>
#include<cstdio>
#include<algorithm>
using namespace std;
void test12(){
int n;
string a, b;
cin >> n;
for (int k = 0; k<n; k++){
a = "";
b = "";
cin >> a;
for (int i = 0; i<a.length(); i++){
switch (a[i]){
case '0':b.append("0000"); break;
case '1':b.append("0001"); break;
case '2':b.append("0010"); break;
case '3':b.append("0011"); break;
case '4':b.append("0100"); break;
case '5':b.append("0101"); break;
case '6':b.append("0110"); break;
case '7':b.append("0111"); break;
case '8':b.append("1000"); break;
case '9':b.append("1001"); break;
case 'A':b.append("1010"); break;
case 'B':b.append("1011"); break;
case 'C':b.append("1100"); break;
case 'D':b.append("1101"); break;
case 'E':b.append("1110"); break;
case 'F':b.append("1111"); break;
default:break;
}
}
int len = b.length();
if (len % 3 == 1){
b = "00" + b;
}
else if (len % 3 == 2){
b = "0" + b;
}
int flag = 0;
for (int i = 0; i<=b.length() - 3; i += 3){
int num = (b[i] - '0') * 4 + (b[i + 1] - '0') * 2 + (b[i + 2] - '0');
if (num){
flag = 1;
}
if (flag)
cout << num;
}
cout << endl;
}
}
注意点:
1.这个得用C++的string 类型方便处理,而不好用char【】数组进行处理。以后引入头文件都用string好点,详情如下:
2.关于oj判题的原理:online judge原理
也就是说可以先读入一个数 处理 然后输出,而不必读取所有的输入数据然后一起输出。
3.今天在使用strlen函数时 发现其不在<string头文件里 还是得写<cstring