筆試題 C 24點遊戲演算法

2021-10-03 10:43:05 字數 2142 閱讀 2944

給出4個1-10的數字,通過加減乘除,得到數字為24就算勝利

輸入:4個1-10的數字。[數字允許重複,但每個數字僅允許使用一次,測試用例保證無異常數字]

輸出:true or false

其中的運算符號,我們用函式指標來取代,根據對應的結合方式,採取不同的迴圈來實現。

#include #include using namespace std;

//24點遊戲演算法:

//窮舉

double add(double a, double b)

double min(double a, double b)

double mul(double a, double b)

double div(double a, double b)

return a / b;

}bool get24pointabcd(double a, double b, double c, double d) ;

double sum = 0;

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

double tmp1 = sum;

for (int j = 0; j < 4; ++j)

double tmp2 = tmp1;

for (int k = 0; k < 4; ++k)

tmp2 = tmp1;

}tmp1 = sum;

} }return false;

}bool get24pointab_cd(double a, double b, double c, double d) ;

double sum = 0;

double sum2 = 0;

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

for (int j = 0; j < 4; ++j)

for (int k = 0; k < 4; ++k)

}} }

return false;

}bool get24pointa_bc_d(double a, double b, double c, double d) ;

double sum = 0;

double sum2 = 0;

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

for (int j = 0; j < 4; ++j)

double tmp1 = sum;

for (int k = 0; k < 4; ++k)

tmp1 = sum;

}} }

return false;

}bool get24pointa_bcd(double a, double b, double c, double d) ;

double sum = 0;

double sum2 = 0;

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

double tmp = sum2;

for (int j = 0; j < 4; ++j)

for (int k = 0; k < 4; ++k)

sum = tmp;

}tmp = sum2;

} }return false;

}void test(double a, double b, double c, double d)

if (get24pointabcd(num[i], num[j], num[k], num[m]) ||

get24pointab_cd(num[i], num[j], num[k], num[m]) ||

get24pointa_bc_d(num[i], num[j], num[k], num[m]) ||

get24pointa_bcd(num[i], num[j], num[k], num[m])) }

}}} cout << "false" << endl;

return;

}int main()

return 0;

}

24點遊戲演算法

24點遊戲演算法 現在我們在做乙個 24點的小遊戲,我主要負責演算法部分,前面有章部落格已經講解了加括號的四則表示式的計算演算法,現在要解決就是24點的演算法。54張牌去掉大小王 2張牌,剩餘 52張。任意發1 k之間的4個 張牌 也就是有 1 13 的四個數字 用 鏈結成算式,使得式子的計算結果為...

24點遊戲演算法

24點遊戲演算法 現在我們在做乙個 24點的小遊戲,我主要負責演算法部分,前面有章部落格已經講解了加括號的四則表示式的計算演算法,現在要解決就是24點的演算法。54張牌去掉大小王 2張牌,剩餘 52張。任意發1 k之間的4個 張牌 也就是有 1 13 的四個數字 用 鏈結成算式,使得式子的計算結果為...

24點遊戲的演算法

給定4個數字計算24 public class core string output s.getexpression for int i 0 i output.length i 設定被計算的四個數,由於是陣列,所以具有容錯功能 不為4個數 public void setnumbers double ...