24點的重新構架

2021-06-16 17:15:04 字數 1266 閱讀 7092

弄了一整天,整出來這麼個雛形,還算說得過去,只是有點欠達標。

程式可讀性極差,寫了一些注釋。

缺陷: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元運算子接收兩個引數,輸出計算結果,輸出的結果...