刚开始,我利用十进制作为中介进行进制转换,结果答案错误,应该是因为测试数据太大,所以又利用二进制作为中介,最后答案正确
思路就是:先把十六进制转化成二进制,每位十六进制正好转化为4位二进制,然后再将二进制转化为八进制,每三个二进制正好转化为1个八进制
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int arr[10000001];
int main()
{
int n,len,i,j;
string str,str2;
cin>>n;
while(n--)
{
cin>>str;
len=str.length();
str2="";
// 十六进制转换为二进制
for(i=0; i<len; ++i)
{
switch(str[i])
{
case '0':
str2+="0000";
break;
case '1':
str2+="0001";
br