弄了一整天,整出來這麼個雛形,還算說得過去,只是有點欠達標。
程式可讀性極差,寫了一些注釋。
缺陷:1. 表示式大量重複,還有不明原因的無用表示式。
2. 表示式居然是分開寫的。好吧,聯立有點難度。
3. 需要輸入卡片張數,不符合簡易要求。
#include #include using namespace std;
// to24point.h
class expression
void output();
void reactivate(char op, int l, int r, int e);
};void expression::output()
void expression::reactivate(char op, int l, int r, int e)
const int result = 24;
const unsigned int operator_number = 4;
vectorprocess;
expression exp('+',0,0,0);
bool origin_record = false;
unsigned int origin_data;
bool to24point(vectororigin)
bool result = false;
if(origin.size()==1 && origin[0]==result)
else if(origin.size()==1 && origin[0]!=result)
for(int i=0; iorig;
// try '+' '-' '*' '/'
for(int t=0; t
#include #include #include #include "to24point.h"
using namespace std;
string cardinal(int ordinal) }}
int main()
origin.push_back(temp);
} if(rules)
result = to24point(origin);
if(!result)
cout << "sorry, wrong cards." << endl << endl;
cout << "\n\n\n\n\n\n\n\n" << endl;
} return 0;
}
24點遊戲的演算法
給定4個數字計算24 public class core string output s.getexpression for int i 0 i output.length i 設定被計算的四個數,由於是陣列,所以具有容錯功能 不為4個數 public void setnumbers double ...
24點演算法
include typedef float cdecl type myfun float float float funadd float x,float y float funsub float x,float y float funmul float x,float y float fundiv...
算24點程式
基本原理是窮舉4個整數所有可能的表示式,然後對表示式求值。表示式的定義 expression expression number operator expression number 因為能使用的4種運算子 都是2元運算子,所以本文中只考慮2元運算子。2元運算子接收兩個引數,輸出計算結果,輸出的結果...