TopCoder

User's AC Ratio

100.0% (2/2)

Submission's AC Ratio

12.5% (2/16)

Tags

Description

小 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 ErrorRuntime Error

提示:你可能會需要 include 需要的標頭檔來迴避 Compile Error

如果還是不確定該如何進行,可以複製以下的程式碼進行修改:

struct complex {
    //your code here
};

#include "lib0620.h"

Input Format

本題沒有輸入,隨意輸入將會得到不可預期的結果。

Output Format

本題沒有輸出,隨意輸出將會得到不可預期的結果。

Sample Input 1

1
70 100
86 59

Sample Output 1

156 159
-16 41
120 12730
1.09589 0.410959

Sample Input 2

1
22 49
25.6 -598.6

Sample Output 2

47.6 -549.6
-3.6 647.6
29894.6 -11914.8
-0.0801393 0.0401797

Hints

Problem Source

Subtasks

No. Testdata Range Constraints Score
1 0~1 範例測資 0
2 0~5 無額外限制 100

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 1000 524288 65536 1 2
1 1000 524288 65536 1 2
2 1000 524288 65536 2
3 1000 524288 65536 2
4 1000 524288 65536 2
5 1000 524288 65536 2