#include
#include
using namespace std;
const double pi=3.1415926535897932384626433;
class Fushu{
private:
double x, y;
public:
Fushu(){x=0.0;y=0.0;}
Fushu operator +(const Fushu& f);
Fushu operator -(const Fushu& f);
Fushu operator *(const Fushu& f);
Fushu operator /(const Fushu& f);
void operator =(const Fushu& f);
void cf(int n);
void kf(int n);
friend ostream& operator <
friend istream& operator >>(istream& In, Fushu& f);
};
// operator + /
Fushu Fushu::operator +(const Fushu& f){
Fushu tem;
tem.x=(*this).x+f.x;
tem.y=(*this).y+f.y;
return tem;
}
// operator - /
Fushu Fushu::operator -(const Fushu& f){
Fushu tem;
tem.x=(*this).x-f.x;
tem.y=(*this).y-f.y;
return tem;
}
// operator * /
Fushu Fushu::operator *(const Fushu& f){
Fushu tem;
tem.x=(*this).x*f.x-(*this).y*f.y;
tem.y=(*this).y*f.x+(*this).x*f.y;
return tem;
}
// operator / /
Fushu Fushu::operator /(const Fushu& f){
Fushu tem;
tem.x=((*this).x*f.x+(*this).y*f.y)/((*this).y*(*this).y+f.y*f.y);
tem.y=((*this).y*f.x-(*this).x*f.y)/((*this).y*(*this).y+f.y*f.y);
return tem;
}
// operator = /
void Fushu::operator =(const Fushu& f){
// Fushu tem;
(*this).x=f.x;
(*this).y=f.y;
// return tem;
}
// 乘方 /
void Fushu::cf(int n){
Fushu tem;
//if(n<0) cout<
if(n==0){
tem.x=1;
tem.y=0;
}
else if (n==1){
tem.x=(*this).x;
tem.y=(*this).y;
}
else
{
double r,j;
r=sqrt((*this).x*(*this).x+(*this).y*(*this).y);
j=atan((*this).y/(*this).x);
tem.x=pow(r,n)*cos(n*j);
tem.y=pow(r,n)*sin(n*j);
}
cout<
}
// 开方 /
void Fushu::kf(int n){
Fushu tem;
double r,j;
r=sqrt((*this).x*(*this).x+(*this).y*(*this).y);
j=atan((*this).y/(*this).x);
cout<
for(int i=0;i
tem.x=pow(r,1.0/n)*cos((j+i*pi*2.0)/n);
tem.y=pow(r,1.0/n)*sin((j+i*pi*2.0)/n);
cout<
}
return;
}
// 输出重载 /
ostream& operator <
if(f.y<0)
return os<
else
return os<
}
// 输入重载 /
istream& operator >>(istream & in, Fushu & f){
in>>f.x>>f.y;
return in;
}
void main(){
Fushu a,b,c;
cout<
cin>>a;
cin>>b;
cout<
cout<
c=a+b;
cout<
c=a-b;
cout<
c=a*b;
cout<
c=a/b;
cout<
c.cf(2);
c.kf(2);
}