样例全过了,但是是0分,有没有大佬帮助看一下
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long int N,mid,weishu;
int ejzzh[200]={0};
char sljzzl[17]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
cin>>N;
weishu=0;//判断位数的变量
for(int i=1;i<=200;i++)////////
{
ejzzh[i]=N%2;
N=N/2;
weishu+=1;
if(N==0&&weishu%7==0)
{
break;
}
}//////////////////////////////转换二进制
for(int i=0;i<=weishu;i++)////////////////////////
{
//cout<<ejzzh[i];
}/////////////////////////////////////////////////测试
for(int i=1;i<=weishu/7;i++)////////
{
mid=i*8;
for(int j=weishu;j>=mid;j--)
{
ejzzh[j+1]=ejzzh[j];
}
if(i==weishu/7)
{
ejzzh[mid]=0;
break;
}
ejzzh[mid]=1;
}///////////////////////////////////进行题目中第二步操作
//cout<<endl;
weishu+=weishu/7;
for(int i=0;i<=weishu;i++)/////////////////////////////////////////
{
//cout<<ejzzh[i];
}
//cout<<endl;//////////////////////////////////////////////////////测试
for(int i=1;i<=weishu/8;i++)///////////////////
{
mid=ejzzh[i*8]*8+ejzzh[i*8-1]*4+ejzzh[i*8-2]*2+ejzzh[i*8-3];
cout<<sljzzl[mid];
mid=ejzzh[i*8-4]*8+ejzzh[i*8-5]*4+ejzzh[i*8-6]*2+ejzzh[i*8-7];
cout<<sljzzl[mid]<<' ';
}//////////////////////////////////////////////转换为16进制并输出
return 0;
}