[C_MM46-易] 複數運算
問題描述 :
在做傅立葉轉換時,常會用到複數,但每次都要分開來計算實部與虛部,非常的麻煩,現在透過 operator overloading 的方式來簡化程式設計師的負擔。須做加減乘。
輸入說明 :
第一列輸入一個正整數n。其後有n列,每一列代表一個想要做運算的虛數,每一列之資料依序為運算元、虛數1、虛數2。虛數的格式為a b,其中a和b是-100~100的整數,其間以空白間格。
輸出說明 :
每一列表一個運算結果。虛數的格式為a b,最後必須有換行字元。
範例 :
在做傅立葉轉換時,常會用到複數,但每次都要分開來計算實部與虛部,非常的麻煩,現在透過 operator overloading 的方式來簡化程式設計師的負擔。須做加減乘。
輸入說明 :
第一列輸入一個正整數n。其後有n列,每一列代表一個想要做運算的虛數,每一列之資料依序為運算元、虛數1、虛數2。虛數的格式為a b,其中a和b是-100~100的整數,其間以空白間格。
輸出說明 :
每一列表一個運算結果。虛數的格式為a b,最後必須有換行字元。
範例 :
Sample Input: | Sample Output: |
3 - 1 2 2 -3 + 2 1 1 2 * 1 1 1 1 | -1 5 3 3 0 2 |
- #include <iostream>
- using namespace std;
- int main() {
- // [C_MM46-易] 複數運算
- int n;
- char op, a1, b1, a2, b2;
- cin >> n;
- for(int i = 0;i < n;i++)
- {
- cin >> op >> a1 >> b1 >> a2 >> b2;
- int a = int(a1-48);
- int b = int(b1-48);
- int c = int(a2-48);
- int d = int(b2-48);
- if(op == 43) // +
- {
- cout << a+c << " " << b+d <<endl;
- }
- if(op == 45) // -
- {
- cout << a-c << " " << b-d <<endl;
- }
- if(op == 42) // *
- {
- cout << a*c-b*d << " " << a*d+b*c << endl;
- }
- }
- return 0;
- }
沒有留言:
張貼留言