using namespace std;
int main()
{
long int a;
int n,i,j,k;
char s[9][52];
cin>>n;
for(i=0;i<n;i++)
{
cin>>a;
if(a<=0){s[i][0]=' ';continue;}
j=0;
for(k=0;;k+=2)
{
while(a%2==0)
{a/=2;j++;}
s[i][k]=char(j+65);
a--;
if(j>25){s[i][0]=' ';break;}
if(a==0){s[i][k+1]='\0';break;};
s[i][k+1]=' ';
}
}
for(i=0;i<n;i++)
{
if(s[i][0]==' '){cout<<"None"<<endl;continue;}
cout<<s[i]<<endl;
}
return 0;
}
测试结果错误.错误结果为:B C D G I N O S T U V X
None
A B C G H L P Q
None
B C D O R U V Y
H J K L
D F J K L N P Q
B D E F G H J K L S U V W
A E G
B E F G H J K M N O P R ]
正确结果应为:B C D G I N O S T U V X
None
A B C G H L P Q
None
B C D O R U V Y
H J K L
D F J K L N P Q
B D E F G H J K L S U V W
A E G
B E F G H J K M N O P R W X Y Z
明明我用a=(pow(2,int('B')-65)+pow(2,int('E')-65)+pow(2,int('F')-65)+pow(2,int('G')-65)+pow(2,int('H')-65)+pow(2,int('J')-65)+pow(2,int('K')-65)+pow(2,int('M')-65)+pow(2,int('N')-65)+pow(2,int('O')-65)+pow(2,int('P')-65)+pow(2,int('R')-65)+pow(2,int('W')-65)+pow(2,int('X')-65)+pow(2,int('Y')-65)+pow(2,int('Z')-65));判定的结果正确的啊