程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 24點問題

24點問題

編輯:關於C語言

CSDN編程挑戰裡的題目

24點游戲是一種使用撲克牌來進行的益智類游戲,游戲內容是:
從一副撲克牌中抽去大小王剩下52張,任意抽取4張牌,把牌面
上的數(A代表1)運用加、減、乘、除和括號進行運算得出24。
每張牌都必須使用一次,但不能重復使用。 有些組合有不同種
算法,例如要用2,4,6,12四張牌組合成24點,可以有如下幾
種組合方法:
2 + 4 + 6 + 12 = 24
4 × 6 ÷ 2 + 12 = 24
12 ÷ 4 × (6 + 2) = 24
當然,也有些組合算不出24,如1、1、1、1 和 6、7、8、8等組合.

我的思路是窮舉法,將四個數的所有可能運算方式都處理一遍,如果有24則正確.可惜提交了三次才正確,沒有獲獎的機會了.

我的程序還可以輸出其運算的表達式.

 #include <stdio.h>
 #include <iostream>
 #include <>
 
 #include <cmath>
 #include <cfloat>
 #include <cstring>
 #include <cstdio>
 
 
   g_fourlist[][] = 
      {,,,     {,,,     {,,,     {,,,     {,,,     {,,, 
     {,,,     {,,,     {,,,     {,,,     {,,,     {,,, 
     {,,,     {,,,     {,,,     {,,,     {,,,     {,,, 
     {,,,     {,,,     {,,,     {,,,     {,,,     {,,,  
  _buildExpress( a,  b,  c,  d,  n,  i,  j,  k, *       szN[] = {      szI[] = {      szJ[] = {      szK[] = { 
      (n&          szN[] =   
                     szI[] =                         szI[] =                         szI[] =                         szI[] =            
                     szJ[] =                         szJ[] =                         szJ[] =                         szJ[] =            
                     szK[] =                         szK[] =                         szK[] =                         szK[] =            
      (n&          sprintf(szExpress,       
          sprintf(szExpress,    
 
        
  
 
  _can24( a,  b,  c,  d, *                           
      ( n = ; n < ; n++          valueA = (n&) ? -()a : ( 
          ( i = ; i < ; i++                                              valueAB = valueA+                                                valueAB = valueA-                                                valueAB = valueA*                                                valueAB = valueA/                   
              (n&                  
                  ( k = ; k < ; k++                                                                      valueCD = ()c+                                                                        valueCD = ()c-                                                                        valueCD = ()c*                                                                        valueCD = ()c/                           
                      ( j = ; j < ; j++                                                                                  valueABCD = valueAB+                                                                                    valueABCD = valueAB-                                                                                    valueABCD = valueAB*                                                                                    valueABCD = valueAB/                               
                          (fabs(valueABCD - ) <                                                                                
                   ( j = ; j < ; j++                                                                      valueABC = valueAB+                                                                        valueABC = valueAB-                                                                        valueABC = valueAB*                                                                        valueABC = valueAB/                           
                      ( k = ; k < ; k++                                                                                  valueABCD = valueABC+                                                                                    valueABCD = valueABC-                                                                                    valueABCD = valueABC*                                                                                    valueABCD = valueABC/                               
                          (fabs(valueABCD - ) <                                                                                           (fabs(valueABCD - /) <                              
                                                                     
        
  Can24(  four[], *       ( i = ; i < ; i++           (_can24(four[g_fourlist[i][                    four[g_fourlist[i][                    four[g_fourlist[i][                    four[g_fourlist[i][                   
       }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved