用扑克牌计算24点

来源:百度知道 编辑:UC知道 时间:2024/06/27 10:18:50
请列出算不出24点的牌面!(15个以上,每组是4个数,如:2.3.6.5以此类推~!快~~

共400多组呢!
  我写了一个C语言的穷举算法:执行一遍就都出来了。

  #include<stdio.h>
  #include<conio.h>
  #define N 13
  main(){
  int i,a[4],ALL=0;
  int YES=0,NO=0,flag=0;
  for(a[0]=1;a[0]<=N;a[0]++)
  for(a[1]=a[0];a[1]<=N;a[1]++)
  for(a[2]=a[1];a[2]<=N;a[2]++)
  for(a[3]=a[2];a[3]<=N;a[3]++)
  { ALL++;
  flag=fun(a[0],a[1],a[2],a[3]);
  if(flag!=0)YES++;
  else {printf("\n");
  for(i=0;i<4;i++)
  printf("%d,",a[i]);
  NO++;}
  }
  printf("\n\tYES:%d\n\n\tNO:%d\n\n\tALL:%d",YES,NO,ALL);
  getch();
  }
  int fun(int a,int b,int c,int d){
  int flag=0,time=0;
  int i=0,j=0,k=0,a_b,temp;
  char ch[4];
  while(time<6){
  for(i=0;i<4;i++){
  if(i<3){
  if(i==0){a_b=a+b;ch[i]='+';}
  if(i==1){a_b=a-b;ch[i]='-';}
  if(i==2){a_b=a*b;