用c语言算24点的程序,C语言算24点的源程序

C语言算24点

#include

double fun(double a1,double a2,int b)

{switch(b)

{case 0:return (a1+a2);

case 1:return (a1-a2);

case 2:return (a1*a2);

case 3:return (a1/a2);

}

}

void main()

{int i,j,k,l,n,m,r,flg=1,save[4],num[4],q=0;

double tem1,tem2,tem3;

char sign[5]="+-*/";

printf("输入四个数:");

for(i=0;i<4;i++)

{scanf("%d",num+i); save[i]=num[i];if(save[i]>13)flg=0;}

if(flg) {

flg=0;

for(i=0;i<4;i++)

for(j=0;j<4;j++)

if(j!=i)

{for(k=0;k<4;k++)

if(k!=i&&k!=j)

{for(l=0;l<4;l++)

if(l!=i&&l!=j&&l!=k)

{for(n=0;n<4;n++)

for(m=0;m<4;m++)

for(r=0;r<4;r++)

{tem1=fun(num[i],num[j],n);

tem2=fun(tem1,num[k],m);

tem3=fun(tem2,num[l],r);

if(tem3==24.0) {printf("{(%d%c%d)%c%d}%c%d=24\n",save[i],sign[n],save[j],sign[m],save[k],sign[r],save[l]);q=1;}

else if(tem3==-24.0)

{if(sign[m]=='-')

{printf("{%d%c(%d%c%d)}%c%d=24\n",save[k],sign[m],save[i],sign[n],save[j],sign[r],save[l]);q=2;}}

else if(tem3==1.0/24.0)

{if(sign[r]=='/')

{printf("%d%c{(%d%c%d)%c%d}=24\n",save[l],sign[r],save[i],sign[n],save[j],sign[m],save[k]);q=3;}}

else if(tem3==-1.0/24.0)

{if(sign[m]=='-'&&sign[r]=='/')

{printf("%d%c{%d%c(%d%c%d)}=24\n",save[l],sign[r],save[k],sign[m],save[i],sign[n],save[j]);q=4;}}

else

{tem1=fun(num[i],num[j],n);

tem2=fun(num[k],num[l],r);

tem3=fun(tem1,tem2,m);

if(tem3==24.0) {printf("(%d%c%d)%c(%d%c%d)=24\n",save[i],sign[

n],save[j],sign[m],save[k],sign[r],save[l]);q=5;}

}

}

}

}

}

}

if(q==0) printf("NO ANSWER\n");

}

有疑问欢迎加qq:1247648406

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值