24点程序代码c语言,速算24点 (C语言代码)

解题思路:

括号没算进去

大致看一下思路把

注意事项:

参考代码:

#include

#include

#include

int jia(int a,int b){

return a+b;

}

int jian(int a,int b){

return a-b;

}

int cheng(int a,int b){

return a*b;

}

int chu(int a,int b){

if(b==0){

return ;

}

return a/b;

}

int c[24][4];

int a[4],ls[4];

int q=0;

int cs[4]={0,1,2,3};

void jihe(int m){

if(m==4){

int p;

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

c[q][p]=a[ls[p]];

}

q++;

return ;

}

int i,j;

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

int tap=0;

for(j=0;j

if(ls[j]==cs[i]){

tap=1;

}

}

if(tap==0){

ls[m]=cs[i];

jihe(m+1);

}

}

}

int main(){

char b[12];

gets(b);

int i=0,j=0,k;

k=strlen(b);

while(i<=k){

if(b[i]>='2' && b[i]<='9'){

a[j++]=b[i]-'0';

}

else if(b[i]=='A'){

a[j++]=1;

}

else if(b[i]=='J'){

a[j++]=11;

}

else if(b[i]=='Q'){

a[j++]=12;

}

else if(b[i]=='K'){

a[j++]=13;

}

else if(b[i]=='1' && b[i+1]=='0'){

a[j++]=10;

i++;

}

i++;

}

memset(ls,0,sizeof(ls));

int (*ys[4])(int,int)={jia,jian,cheng,chu};//函数指针指向+-*/几个函数

int m=0;

jihe(m);

int x1,x2,x3,sum,bj=0;

for(i=0;i<24;i++){

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

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

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

sum=ys[x1](c[i][0],ys[x2](c[i][1],ys[x3](c[i][2],c[i][3])));

if(sum==24){

bj=1;

break;

}

}

}

}

}

if(bj==0){

printf("N\n");

}

else{

printf("Y");

}

return 0;

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值