杭电上Safecracker这道题,为什么我的程序提交就错,求大神帮忙看看
#include <stdio.h>#include <string.h>
#include <math.h>
int main()
{
int i,target,t,j,k,l,a;
char z[30]={0};
char x[10]={0};
while(scanf("%d",&target)!=EOF)
{
getchar();
gets(z);
if(target==0&&z[0]=='E'&&z[1]=='N'&&z[2]=='D')
break;
t=strlen(z);
for(i=0;i<t;i++)
{z[i]-=64;}
for(i=0;i<5;i++)
x[i]=0;
for(i=0;i<t;i++)
{
for(j=0;j<t;j++)
{
for(k=0;k<t;k++)
{
for(l=0;l<t;l++)
{
for(a=0;a<t;a++)
{
if(i!=j&&i!=k&&i!=l&&i!=a&&j!=k&&j!=l&&j!=a&&k!=l&&k!=a&&l!=a)
{
if(z[i]-(z[j]*z[j])+(z[k]*z[k]*z[k])-(z[l]*z[l]*z[l]*z[l])+(z[a]*z[a]*z[a]*z[a]*z[a])==target)
{
x[0]=z[i];x[1]=z[j];x[2]=z[k];x[3]=z[l];x[4]=z[a];
}
}
}
}
}
}
}
if(x[0]!=0&&x[1]!=0&&x[2]!=0&&x[3]!=0&&x[4]!=0)
printf("%c%c%c%c%c\n",x[0]+64,x[1]+64,x[2]+64,x[3]+64,x[4]+64);
else
printf("no solution\n");
}
return 0;
}