7771每个数字只能用一次怎么等于24

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/01 20:17:16
7771每个数字只能用一次怎么等于24
xVoP? f[Kˏ&$vtPhʠ%Eӄl궨#&[f<6=6iZW6oy}|>K\*ǭAqo7 v۽f~sw58uvlKX-NtJE4H$٫J^?6NEw */HM~6w4rt%FGM{!ݎfcjsVY|蝾0Z0_u~pL6;/[/a53ӂS\MI.VU5AR+9.C1<5>¿A$Y JRˌ$(TĠܨ2]5~͛GuKl/ UV2HX\AyFm1o{F?4!&LԐ)k˳ضZ"ξD# 1!ZuQk ̘cE[vbE8<}>)FaR+wy̮z/7eі:%xF&rH 3ݘ-R>H7|GmQH,vxgL qxHvVOV뀣8` U0;JB;AkWE V`Eė5TqA]0y _'<ZBf NrKy" Jɕ/2a+_R&D L3;'_2K%9&΍] n/:^i`L}VHE^.Q)aJkLs ~]mp.י]S~몊UU0>lUbE$ΒS5~onr¸nuzġK

7771每个数字只能用一次怎么等于24
7771每个数字只能用一次怎么等于24

7771每个数字只能用一次怎么等于24
8*(7-4)=24 8乘7减4的差 8*(7-4)=24 (7—4)×8 8乘7减4的差 8*(7-4)=24 (7-4)*8=24 在玩24点?.

不可能。

算不出来,我用程序算过了
#include
#include
struct
{
int isop;
double num;
}data[15];
int num[6],flag,used[6];
int x,n,temp[6];
char op[6];
ch...

全部展开

算不出来,我用程序算过了
#include
#include
struct
{
int isop;
double num;
}data[15];
int num[6],flag,used[6];
int x,n,temp[6];
char op[6];
char mod[5]="+-*/";
double fun(double a,char b,double c)
{
if(b=='/')
{
if(c==0)
return 1000000000;
return a/c;
}
else if(b=='+')
return a+c;
else if(b=='-')
return a-c;
else if(b=='*')
return a*c;
return 1000000000;
}
int cal()
{
int i,j,k;
double judge;
for(i=0;i<2*n-1;i++)
{
if(data[i].isop==1)
{
 judge=fun(data[i-1].num,data[i].num,data[i+1].num);
 if(judge==1000000000)
 return 0;
 data[i+1].num=judge;
 }
}
if(data[2*n-2].num==x)
return 1;
return 0;
}
int DFSop(int deep)
{
int i,j,k;
if(deep==n-1)
{
j=k=0;
for(i=0;i<2*n-1;i++)
{
if(i%2==0)
{
data[i].isop=0;
data[i].num=temp[j++];
}
else
{
data[i].isop=1;
data[i].num=op[k++];
}
}
if(cal())
return 1;
return 0;
}
for(i=0;i<4;i++)
{
op[deep]=mod[i];
if(DFSop(deep+1))
return 1;
}
return 0;
}
int DFSsort(int deep)
{
int i;
if(deep==n)
{
if(DFSop(0))
return 1;
return 0;
}
for(i=0;i {
if(used[i]==0)
{
used[i]=1;
temp[deep]=num[i];
if(DFSsort(deep+1))
return 1;
used[i]=0;
}
}
return 0;
}
main()
{
int i;
while(scanf("%d%d",&x,&n)!=EOF)
{
for(i=0;i scanf("%d",&num[i]);
flag=0;
memset(used,0,sizeof(used));
if(DFSsort(0))
printf("YES\n");
else
printf("NO\n");
}
}

收起