SJTUOJ 1011. 复数类

题目内容

题目描述
写一个复数类,实现以下程序主函数中所需要的功能。

#include
using namespace std;

class MyComplex
{
private:
double x,y;
public:
/* Implementation of MyComplex */
};

int main()
{
MyComplex z1;
MyComplex z2;

cin >> z1 >> z2;

cout << z1 + z2 <<endl;
cout << z1 - z2 <<endl;
cout << z1 * z2 <<endl;
cout << z1 / z2 <<endl;
cout << (z1 += z2) <<endl;
cout << (z1 -= z2) <<endl;
cout << (z1 *= z2) <<endl;
cout << (z1 /= z2) <<endl;

return 0;
}
输入格式
输入包括两行,第一行是两个整数a, b(0<|a|+1,|b|<100010<|a|+1,|b|<10001),表示复数a+bia+bi。

第二行是两个整数c, d(0<|c|+1,|d|<100010<|c|+1,|d|<10001),表示复数c+dic+di。输入数据保证不出现除以0的情况。

输出格式
输出包括八行,对应所给程序中的输出。注意输出浮点数保留2位小数。

Sample Input 1
3 6
-3 5
Sample Output 1
0.00 11.00
6.00 1.00
-39.00 -3.00
0.62 -0.97
0.00 11.00
3.00 6.00
-39.00 -3.00
3.00 6.00
Sample Input 2
5 9
5 -9
Sample Output 2
10.00 0.00
0.00 18.00
106.00 0.00
-0.53 0.85
10.00 0.00
5.00 9.00
106.00 0.00
5.00 9.00

代码实现

#include <stdio.h>
int main(){
  int a,b,c,d;
  double xn,xi,yn,yi,r1,r2;
  scanf("%d %d",&a,&b);
  scanf("%d %d",&c,&d);
  xn = a;
  xi = b;
  yn = c;
  yi = d;
  printf("%.2lf %.2lf\n",xn+yn,xi+yi);
  printf("%.2lf %.2lf\n",xn-yn,xi-yi);
  printf("%.2lf %.2lf\n",xn*yn-xi*yi, xn*yi+xi*yn);
  printf("%.2lf %.2lf\n",(xn*yn+xi*yi)/(yn*yn+yi*yi),(xi*yn-xn*yi)/(yn*yn+yi*yi));
  //(ac+bd+(bc-ad)i)/(c^2+d^2)
  xn+=yn;xi+=yi;
  printf("%.2lf %.2lf\n",xn,xi);
  xn-=yn;xi-=yi;
  printf("%.2lf %.2lf\n",xn,xi);
  r1 = xn*yn-xi*yi; r2= xn*yi+xi*yn;
  printf("%.2lf %.2lf\n", r1,r2);
  xn=r1;xi=r2;
  printf("%.2lf %.2lf\n",(xn*yn+xi*yi)/(yn*yn+yi*yi),(xi*yn-xn*yi)/(yn*yn+yi*yi));
  return 0;
}

时间:0ms 空间:9232kb

猜你喜欢

转载自blog.csdn.net/Phoenix5443/article/details/85038508
今日推荐