24點紙牌遊戲

2022-03-11 19:37:57 字數 1437 閱讀 9240

有一種遊戲叫做24點,首先是拿一副牌,每次抽出4張,然後利用+,-,*,/四種運算,每張牌只能用一次,而且像10/3這種有餘數的運算不能算,結果能算出24點嗎?(說明:j到k都是算10點,不論花色的)

由於無聊,所以在火車上想起了這種遊戲,當我們想不出來時,能不能寫個程式來解決呢?這是當時決定寫這個程式的原因。

演算法:暴力法,想下四張牌放在臺面上,然後往牌中間填三個運算子,列舉四張牌和三個運算子的可能組合,牌的組合有4*3*2*1種,運算子有4*4*4中,然後總的列舉次數是1536種

要注意的細節是算符優先順序問題,其實只要考慮兩種情況就行,首先是因為是列舉牌的組合,所以一是不用考慮優先順序,依次由由右往左依次做運算就行,還有一種是前兩張先運算,然後是後兩張運算,最後是兩次運算的結果再做運算就行,下面是自己寫的程式,寫得不好求評:

view code

1 #include 2 #include 

3 #include 4

5int a[4];6

char op = ;78

int ok(int k1, int k2, int k3, int k4, char op1, char op2, char

op3);

9int op_num(int aa, int bb, char

op_op);

10void

init_scanf();

11int judge(int k1, int k2, int k3, int

k4);

1213

int judge(int k1, int k2, int k3, int

k4)1427}

28}29}

30return1;

31}3233

int ok(int k1, int k2, int k3, int k4, char op1, char op2, char

op3)

3453

else

5471}72

return0;

73}7475

int op_num(int aa, int bb, char

op_op)

7686

default: return -9999;87

}88}89

90void

init_scanf()

91124

}125

}126

}127

}128

}129

}130

131 printf("

no\n");

132}

133134

int main(void

)135

143 system("

pause");

144return0;

145 }

24點紙牌遊戲計算器

includebool flag 判斷是否有解 function 兩個數之間的計算 param float x 第乙個數 float y 第二個數 int z 運算符號 return float 運算結果 float calculate float x,float y,int z function ...

C語言 紙牌計算24點小遊戲

c語言實現紙牌計算24點小遊戲 利用系統時間設定隨機種子生成4個隨機數,並對4個數字之間的運算次序以及運算符號進行列舉,從而計算判斷是否能得出24,以達到程式目的。程式主要功能已完成,目前還有部分細節未處理,待完成ing.對於 中的錯誤,懇請批評指正。遊戲描述 a 10 分別代表數字 1 10。j,...

C語言實現紙牌24點小遊戲

此程式參考c語言實現經典24點紙牌益智遊戲,並做出一些改進。一 題目要求 24點遊戲規則 從撲克中每次取出4張牌。使用加減乘除,第乙個能得出24者為贏。其中,j代表11,q代表12,k代表13,a代表1 按照要求程式設計解決24點遊戲。基本要求 隨機生成4個代表撲克牌牌面的數字字母,程式自動列出所有...