小 K 在上數學課,而數學老師正在教複數的概念,聰明的小 K 想到了可以使用程式來解決問題,希望你能夠幫助他實作出一個結構,可以用來處理虛數的問題。
需要設計出一個結構,請在程式碼的最後一行引入標頭檔 struct05.h
,並實作出含有以下資訊的結構:
struct
的名稱為 complex
double
變數名叫 real
,用來儲存複數的實部double
變數名叫 imaginary
,用來儲存複數的虛部除此之外,我們還需要處理加、減、乘、除。請重載 +
,-
,*
,/
的運算子,讓測試的程式碼可以執行四則運算。
一個複數可以用 $a + bi$ 表示,其中 $a$ 為此虛數的實部, $b$ 為此虛數的虛部,$i=\sqrt{-1}$。
如果有兩個虛數 $A = a + bi, B = c + di$,那麼他的四則運算如下:
加法:$A+B = (a+bi) + (c+di) = (a+c) + (b+d)i$
減法:$A-B = (a+bi) + (c+di) = (a-c) + (b-d)i$
乘法:$A\times B = (a+bi)(c+di) = ac+bci+adi+bdi^ {2}=(ac-bd)+(bc+ad)i$。
除法:$A\div B = \frac{a+bi}{c+di} = \frac{(a+bi)(c-di)}{(c+di)(c-di)} = \frac{ac+bci-adi-bdi^ 2}{c^ 2-(di)^ 2}=\frac{(ac+bd)+(bc-ad)i}{c^ 2+d^ 2}$
注意請勿在你的程式碼宣告主函式 main()
以及進行任何輸入輸出的動作,你同時也不需要實作任何除了結構以外的函式,幫結構內部的變數賦予值,宣告任何不必要的變數,或宣告任何的全域變數,否則將會發生不可預期的結果。
若你的結構實作不符合需求,除了獲得 Wrong Answer
之外,你更有可能獲得 Compile Error
或 Runtime Error
。
提示:你可能會需要 include
需要的標頭檔來迴避 Compile Error
。
如果還是不確定該如何進行,可以複製以下的程式碼進行修改:
struct complex {
//your code here
};
#include "lib0620.h"
本題沒有輸入,隨意輸入將會得到不可預期的結果。
本題沒有輸出,隨意輸出將會得到不可預期的結果。
No. | Testdata Range | Constraints | Score |
---|---|---|---|
1 | 0~1 | 範例測資 | 0 |
2 | 0~5 | 無額外限制 | 100 |