簡單寫了點**,把那個方程組生成樹結構:
[code]
#include
#include
using namespace std;
enum type;
enum operator;
class variable
variable(const char* name)
variable(const variable& var)
variable(double value)
variable(operator op, variable var1, variable var2)
~variable()
}template
variable operator + (t value)
template
variable operator - (t value)
template
variable operator * (t value)
template
variable operator / (t value)
template
variable operator = (t value)
variable operator = (variable value)
friend ostream& operator << (ostream& os, const variable& var);
};template <>
variable variable::converttovariable(variable value)
template
variable operator + (t value, variable var)
template
variable operator - (t value, variable var)
template
variable operator * (t value, variable var)
template
variable operator / (t value, variable var)
int deep = 0;
ostream& operator << (ostream& os, const variable& var)
}break;
case tvariable:
os << "variable: " << string(var.name_);
break;
}os << "|" << endl;
deep ++;
if (var.var1_) os << *var.var1_;
if (var.var2_) os << *var.var2_;
deep --;
return os;
}int main()
[/code]
輸出結果如下:
[code]
|operator: =|
|operator: +|
|variable: x|
|number: 5|
|operator: *|
|variable: y|
|number: 3|
|operator: =|
|operator: /|
|variable: x|
|variable: y|
|number: 2|
|operator: =|
|operator: /|
|operator: *|
|operator: +|
|variable: x|
|variable: y|
|operator: -|
|variable: x|
|variable: y|
|number: 5|
|number: 15|
[/code]
不過最外層的幾個物件都是臨時的,所以必須要在它們析構以前把預處理的結果存入x和y中。
另外由於c++語言方面的原因,這裡必須寫成物件拷貝而不是引用或指標。
離最終結果還很遙遠,一步步看吧。。。
突發奇想 超越寶馬之後
前面開車的是個女的 一眼瞟到這個情況,我便作出了超車的決定。路上的車不多,前面幾輛車稀疏的併排,但是中間的空隙似乎不足夠進行大刀闊斧的超車動作。但是我終究還是超了 帶著一點點爭強好勝,一點點年輕人的血氣方剛。交通燈就像馬路上的革命者,對車流進行結構重組,對車群進行資源整合 大家又排到了十分相近的起點...
一次突發奇想
今天有個突發奇想 假如 有需要我們 暴力破解 而且必須和程式互動的時候 我們該怎麼辦 這個 有人和我說os 庫 但是 沒有知道怎麼用 我現在沒有解決 windows下的 dos 平台 如果有人知道了 可以在下面一起交流 先說linux 下的怎麼辦 這個 在我以前我也寫過 有用shell 但是如果不想...
突發奇想 重推min 25
牢騷和推導 忘記 tt min 25 了,重新推一遍,順便理清思路。對於乙個函式 f x 它是乙個積性函式,並且 f p f p k 都比較好得到,現在問 f i sum nf i 對於 f 我們分質數 合數與 1 三種情況考慮,就有 f n sum f p i sum f x f 1 對於合數部分...