讨论 / 怪了,怎么出错的?
干什么都无聊 2010-04-30 02:06:00
点我顶贴 收藏 删除
#include <iostream>

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));判定的结果正确的啊

查看更多回复
提交回复