2017年11月11日 星期六

[C_MM46-易] 複數運算(C++)

[C_MM46-易] 複數運算

問題描述 :
在做傅立葉轉換時,常會用到複數,但每次都要分開來計算實部與虛部,非常的麻煩,現在透過 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

  1. #include <iostream>  
  2. using namespace std;  
  3.   
  4. int main() {  
  5.     // [C_MM46-易] 複數運算  
  6.     int n;  
  7.     char op, a1, b1, a2, b2;  
  8.     cin >> n;  
  9.     for(int i = 0;i < n;i++)  
  10.     {  
  11.         cin >> op >> a1 >> b1 >> a2 >> b2;  
  12.         int a = int(a1-48);  
  13.         int b = int(b1-48);  
  14.         int c = int(a2-48);  
  15.         int d = int(b2-48);  
  16.         if(op == 43) // +  
  17.         {  
  18.             cout << a+c << " " << b+d <<endl;  
  19.         }  
  20.         if(op == 45) // -  
  21.         {  
  22.             cout << a-c << " " << b-d <<endl;  
  23.         }  
  24.         if(op == 42) // *   
  25.         {  
  26.             cout << a*c-b*d << " " << a*d+b*c << endl;  
  27.         }  
  28.     }  
  29.     return 0;  
  30. }  

沒有留言:

張貼留言