給出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 ...