📄 algorithum.h
字号:
int CMyView::Algorithum()
{
int a[4];//用来表示四个数的标号;
int b[3];//用来表示三个符号;
double ra[4];
char istring[20];
int i=0;
int tag=0;
int count=0;
int p=0;
/////////////////////////////////////////////////////////////
for(a[0]=0;a[0]<4;a[0]++)
{
for(a[1]=0;a[1]<4;a[1]++)
{
if(a[0]==a[1])
continue;
for(a[2]=0;a[2]<4;a[2]++)
{
if(a[2]==a[0]||a[2]==a[1])
continue;
for(a[3]=0;a[3]<4;a[3]++)
{
if(a[3]==a[2]||a[3]==a[1]||a[3]==a[0])
continue;
for(i=0;i<4;i++)
{
ra[i]=poke[a[i]]+0.0;
}
for(b[0]=0;b[0]<4;b[0]++)
for(b[1]=0;b[1]<4;b[1]++)
for(b[2]=0;b[2]<4;b[2]++)
{
for(i=0;i<4;i++)
{
ra[i]=poke[a[i]]+0.0;
}
//////////////////////////////////////////// (((a0b0a1)b1a2)b2a3)
tag=0;
for(i=0;i<3;i++)
{
switch(b[i])
{
case 0: ra[i+1]=ra[i]+ra[i+1];break;
case 1: ra[i+1]=ra[i]-ra[i+1];break;
case 2: ra[i+1]=ra[i]*ra[i+1];break;
case 3:
if(ra[i+1]>0.0001||ra[i+1]<-0.0001)
ra[i+1]=ra[i]/ra[i+1];
else tag=1;
break;
}
if(tag==1)
break;
//解
if(!tag&&i==2&&(ra[3]-24.0)<0.0001&&(ra[3]-24.0)>-0.0001)
{
istring[p++]='(';
istring[p++]='(';
if(poke[a[0]]/10==0)
{
istring[p++]=48+poke[a[0]];
}
else
{
istring[p++]=poke[a[0]]/10+48;
istring[p++]=poke[a[0]]%10+48;
}
switch(b[0])
{
case 0: istring[p++]='+';break;
case 1: istring[p++]='-';break;
case 2: istring[p++]='*';break;
case 3: istring[p++]='/';break;
}
if(poke[a[1]]/10==0)
{
istring[p++]=48+poke[a[1]];
}
else
{
istring[p++]=poke[a[1]]/10+48;
istring[p++]=poke[a[1]]%10+48;
}
istring[p++]=')';
switch(b[1])
{
case 0: istring[p++]='+';break;
case 1: istring[p++]='-';break;
case 2: istring[p++]='*';break;
case 3: istring[p++]='/';break;
}
if(poke[a[2]]/10==0)
{
istring[p++]=48+poke[a[2]];
}
else
{
istring[p++]=poke[a[2]]/10+48;
istring[p++]=poke[a[2]]%10+48;
}
istring[p++]=')';
switch(b[2])
{
case 0: istring[p++]='+';break;
case 1: istring[p++]='-';break;
case 2: istring[p++]='*';break;
case 3: istring[p++]='/'; break;
}
if(poke[a[3]]/10==0)
{
istring[p++]=48+poke[a[3]];
}
else
{
istring[p++]=poke[a[3]]/10+48;
istring[p++]=poke[a[3]]%10+48;
}
istring[p++]='=';
istring[p++]='2';
istring[p++]='4';
istring[p]=NULL;
ShowFonts(istring);
count++;
p=0;
}
}
/////////////////////// (a0b0a1)b1(a2b2a3)////////////////////////////
tag=0;
for(i=0;i<4;i++)
{
ra[i]=poke[a[i]];
}
switch(b[0])
{
case 0: ra[1]=ra[0]+ra[1];break;
case 1: ra[1]=ra[0]-ra[1];break;
case 2: ra[1]=ra[0]*ra[1];break;
case 3:
if(ra[1]!=0)
ra[1]=(ra[0]+0.0)/ra[1];
else tag=1;
break;
}
switch(b[2])
{
case 0: ra[2]=ra[2]+ra[3];break;
case 1: ra[2]=ra[2]-ra[3];break;
case 2: ra[2]=ra[2]*ra[3];break;
case 3:
if(ra[3]!=0)
ra[2]=(ra[2]+0.0)/ra[3];
else tag=1;
break;
}
switch(b[1])
{
case 0: ra[3]=ra[1]+ra[2];break;
case 1: ra[3]=ra[1]-ra[2];break;
case 2: ra[3]=ra[1]*ra[2];break;
case 3:
if(ra[2]!=0)
ra[3]=(ra[1]+0.0)/ra[2];
else tag=1;
break;
}
//解
if(!tag&&(ra[3]-24.0)<0.0001&&(ra[3]-24.0)>-0.0001)
{
istring[p++]='(';
if(poke[a[0]]/10==0)
{
istring[p++]=48+poke[a[0]];
}
else
{
istring[p++]=poke[a[0]]/10+48;
istring[p++]=poke[a[0]]%10+48;
}
switch(b[0])
{
case 0: istring[p++]='+';break;
case 1: istring[p++]='-';break;
case 2: istring[p++]='*';break;
case 3: istring[p++]='/';break;
}
if(poke[a[1]]/10==0)
{
istring[p++]=48+poke[a[1]];
}
else
{
istring[p++]=poke[a[1]]/10+48;
istring[p++]=poke[a[1]]%10+48;
}
istring[p++]=')';
switch(b[1])
{
case 0: istring[p++]='+';break;
case 1: istring[p++]='-';break;
case 2: istring[p++]='*';break;
case 3: istring[p++]='/';break;
}
istring[p++]='(';
if(poke[a[2]]/10==0)
{
istring[p++]=48+poke[a[2]];
}
else
{
istring[p++]=poke[a[2]]/10+48;
istring[p++]=poke[a[2]]%10+48;
}
switch(b[2])
{
case 0: istring[p++]='+';break;
case 1: istring[p++]='-';break;
case 2: istring[p++]='*';break;
case 3: istring[p++]='/';break;
}
if(poke[a[3]]/10==0)
{
istring[p++]=48+poke[a[3]];
}
else
{
istring[p++]=poke[a[3]]/10+48;
istring[p++]=poke[a[3]]%10+48;
}
istring[p++]=')';
istring[p++]='=';
istring[p++]='2';
istring[p++]='4';
istring[p]=NULL;
ShowFonts(istring);
p=0;
count++;
}
}
}
}
}
}
if(count==0)
ShowFonts("there is no answer at all");
return count;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -