1. 你能用連續4張撲克算出「24點」嗎你能想出幾種
24可以簡單寫成3×8、4×6、12×2、1×24等,還可以寫成(10—2)×3、(9—1)×3、(2+1)×8、(5+7)×2、(5+1)×4等,這些算式變化多樣。利用上面的思考方式可以這樣算:
因為:3×8=24
2—1=1
所以:(3×8)×(2—1)=24
1、用4×6的方法湊24。
因為4×6=24,(2—1)=1,所以4×6×(2—1)=24。
2、用3×8的方法湊24。
當四個數湊24,用3×8、4×6、12×2等基本思路行不通時,可以先考慮兩個數的和或差湊24。
因為:4—1=3,2+6=8,所以:(4—1)×(2+6)=24
組合就太多了包括弧變化,但思路是以上方法為主導解法不變。
2. 4張撲克牌怎樣才能得到24呢
從撲克中任意抽出四張(數字表示為1-13),用加、減、乘、除的方法使結果成為24,每張牌只能用一次。一副牌(52張)中,任意抽取4張可有1820種不同組合,其中有458個牌組算不出24點所以有很多 在下舉一例:6乘以8在除以(9加-7)=48除2=24
3. 4張牌算24點,4.4.8.8.
4+4+8+8
=24;
4x(8-4)+8
=4x4+8
=16+8
=24;
(4+8)÷4x8
=12÷4x8
=3x8
=24;
……
供參考。
4. 1個關於取4張牌計算24點的問題
#include <stdio.h>
void Hello( )
{
puts("\n");
puts(" ##################################################");
puts(" ## ##");
puts(" ## 24點程序 ##");
puts(" ## ##");
puts(" ##################################################");
puts(" ## ##");
puts(" ## 輸入4個整數,用它們構造一個算術四則運算, ##");
puts(" ## 使結果等於24。每個數恰好利用一次。 ##");
puts(" ## ##");
puts(" ## 例如,輸入為 2 7 10 6 ##");
puts(" ## 輸出為(2+6)x(10-7) ##");
puts(" ## …… ##");
puts(" ## …… ##");
puts(" ## (可輸出有重復的全部解) ##");
puts(" ## ##");
puts(" ##################################################");
puts(" ## ##");
puts(" ## 設計者:NotorFast ##");
puts(" ## 時 間:2004-10-16 ##");
puts(" ## ##");
puts(" ##################################################");
puts("\n");
}
const int N = 4; // 操作數的個數/棧的極限高度
#define eps 1E-6 // 浮點精度
inline float abs(float x) { return x >= 0.0 ? x : -x; }
// 棧模板
template <class T, int N> class STACK {
protected:
T a[N]; // 棧的存儲體
int n; // 棧的高度/未來棧頂位置
public:
STACK( ) { reset( ); } // 棧初始化
void reset( ) { n = 0; } // 清空棧
void push(T x) { if(n < N) a[n++] = x; else puts("棧上溢"); } // 壓入數據到棧頂
T pop( ) { if(n > 0) return a[--n]; else puts("棧下溢"); } // 彈出棧頂數據
// T top( ) { if(n > 0) return a[n-1]; else puts("棧空"); } // 查詢棧頂元素
// bool isempty( ) { return n == 0; } // 查詢棧是否為空
// int heigth( ) { return n; } // 查詢棧的高度
};
const char opr[ ] = "+-*/";
int a[N]; // 輸入的4個數
STACK<float, N> opnstk; // 操作數棧
int b[N], K = 0; // a[]的備份/用於生產排列的工作區
void gen(int n, int m) // 生成n個數中取m個數的全排列。m = n時即為n個數的全排列。---
{ // --- 每產生一個排列,放入b[]中。
void gen24( ); // 函數聲明
int i;
if(m == 0) {
// for(i = 0; i < K; ++i) printf("%d ", b[i]); putchar('\n'); // 如果只是為了輸出排列
gen24( ); // 函數調用
}
else
for(i = 0; i < n; ++i) if(a[i] != '.') {
b[K++] = a[i];
a[i] = '.';
gen(n, m - 1);
a[i] = b[--K];
}
}
// 用後綴表達式計算,用中綴表達式輸出。
// --- n表示將一個操作數壓棧,#表示進行一步運算。
// --- abcd指操作數的輸出順序,123指運算符的輸出順序。
const char stkmode[5][22] = {
"nnnn### = a3(b2(c1d))",
"nnn#n## = a3((b1c)2d)",
"nnn##n# = (a2(b1c))3d",
"nn#nn## = (a1b)3(c2d)",
"nn#n#n# = ((a1b)2c)3d",
};
void gen24( ) // 用b[]中的4個數產生等於24的算式
{
bool calc(float, char, float, float&); // 函數聲明
int i, jn, jo, p0, p1, p2;
char enumopr[3], op;
float a1, a2, c;
const char *p;
// for(i = 0; i < K; ++i) printf("%d ", b[i]); putchar('\n'); // 如果只是為了輸出排列
for(i = 0; i < 5; ++i) // 嘗試每種棧模式
for(p0 = 0; p0 < 4; ++p0) { enumopr[0] = opr[p0];
for(p1 = 0; p1 < 4; ++p1) { enumopr[1] = opr[p1];
for(p2 = 0; p2 < 4; ++p2) { enumopr[2] = opr[p2];
opnstk.reset( );
for(jn = jo = 0, p = stkmode[i]; *p != ' '; ++p) switch(*p) {
case 'n':
opnstk.push(b[jn++]); break;
case '#':
a2 = opnstk.pop( ); a1 = opnstk.pop( ); op = enumopr[jo++];
if(calc(a1, op, a2, c)) opnstk.push(c); else goto loc_1;
}
if(abs(c - 24) < eps) {
while(*++p != 0) switch(*p) {
case '(':
case ')':
putchar(*p);
break;
case 'a':
case 'b':
case 'c':
case 'd':
printf("%d", b[*p - 'a']);
break;
case '1':
case '2':
case '3':
printf("%c", enumopr[*p - '1']);
break;
}
putchar('\n');
goto loc_2;
}
loc_1: continue;
}}}
loc_2: return;
}
bool calc(float a, char op, float b, float& c)
{
static bool bRet;
switch(bRet = true, op) {
case '+': c = a + b; break;
case '-': c = a - b; break;
case '*': c = a * b; break;
case '/':
if(abs(b) > eps) c = a / b; else bRet = false;
}
return bRet;
}
int main( )
{
Hello( );
while(true) {
printf("請輸入%d個整數(用空白分隔。結束程序請輸入0): ", N);
for(int i = 0; i < N; ++i) { scanf("%d", &a[i]); if(a[i] == 0) goto loc_0; }
K = 0; gen(N, N);
}
loc_0: return 0;
}
5. 用4張牌湊成24規律_
你好!「算24點」作為一種撲克牌智力游戲,還應注意計算中的技巧。計算時,我們不可能把牌面上的4個數的不同組合形式——去試,更不能瞎碰亂湊。剛開始的時候,可能需要花很長的時間去想一種解法,我們可以慢一點,引導利用一些規律:比如利用3×8=24、4×6=24求解,
把牌面上的四個數想辦法湊成3和8、4和6,再相乘求解。
6. 利用下面每組中的四張撲克牌算出「24點」)
5*4+7-3=24
3*(5+7-4)=24
4*3*(7-5)=24
3*4+7+5=24
7. 根據下面4張撲克牌上面的數,算出24點
同樂,可口可樂了
8. 四張撲克牌算24點規則是什麼
游戲規則:這是一個撲克牌小游戲,用來測試人的計算水平的,它的運算規則其實就是四則混合運算,用加減乘除計算四張撲克牌上的數字,能得到結果是24就為贏了。
1、利用3×8=24、4×6=24求解。
把牌面上的四個數想辦法湊成3和8、4和6,再相乘求解。如3、3、6、10可組成(10-6÷3)×3=24等。又如2、3、3、7可組成(7+3-2)×3=24等。
2、利用0、1的運算特性求解。
如3、4、4、8可組成3×8+4-4=24等。又如4、5、J、K可組成11×(5-4)+13=24等。
在有解的牌組中,用得廣泛的是以下六種解法(我們用a、b、c、d表示牌面上的四個數):
1、(a-b)×(c+d);如(10-4)×(2+2)=24等。
2、(a+b)÷c×d;如(10+2)÷2×4=24等。
3、(a-b÷c)×d;如(3-2÷2)×12=24等。
4、(a+b-c)×d;如(9+5-2)×2=24等。
5、a×b+c-d;如11×3+l-0=24等。
6、(a-b)×c+d;如(4—l)×6+6=24等。
9. 用4張牌湊成24規律_
一、拿出一副撲克牌,取出大小王,剩下1到10,這40張牌(1用A代替)。任意從中取出4張牌,用加減乘除及括弧進行計算,使結果等於24。每張牌只能用一次。二、利用0和1特殊性進行運算,比如4、6、8、8可以計算為4×6+8-8=24。三、運用2×12=24 ,3×8=24,4×6=24計算。如2、3、3、7,想辦法將四個數,組合成以上三組中任意的一組。(7+3-2)×3=24。四、利用3×8=24、4×6=24求解,把牌面上的4個數想辦法湊成3和8。五、4和6,再相乘求解。同學們平時一定要多加練習,只有掌握熟練才能快速正確的算出。