1051複素乗算——c実現
1360 ワード
1051複素乗算(15分)
複素数は、Aが実数部、Bが虚数部、iが虚数単位であり、i 2=−1を満たす(A+Bi)の従来の形式とすることができる.極座標下の指数形式(R×e(Pi),ここでRは複素モード,Pは放射角,iは虚数単位であり,これは三角形式(R(cos(P)+isin(P))に等価である.
2つの複素数のRとPが与えられ、2つの数の積を出力する従来の形式が要求される.
入力形式:
1行に2つの複素数のR 1,P 1,R 2,P 2を順次入力し,数字間をスペースで区切る.
出力フォーマット:
1行に
サンプルを入力:
出力サンプル:
考え方:
1、アルゴリズムが始まります.
2、R 1、P 1、R 2、P 2を読み込みます.3、A=(R1*R2)cos(P1+P2),B=(R1*R2)sin(P1+P2).4、Aの絶対値が0.01未満の場合、A=0.
5、Bの絶対値が0.01未満の場合、B=0.
6、Bがゼロより小さい場合、A-|B|iを出力し、そうでない場合、BはA+Biを出力する.出力時、各数字は2桁保持されます.
7、アルゴリズム終了
注意:実部、虚部ともに小数点を2桁保持しているため、A、Bの値が0と-0.01の間にある場合はゼロに設定する必要があります.そうしないと、使用例が通過できません.-----------------------------
コード:
注意:fabs()とabs()の違い:abs()は整数で絶対値を取り、fabs()は浮動小数点数で絶対値を取ります.
参照先:
作者:チャネルソース:CSDN原文:https://blog.csdn.net/chr1991/article/details/51014382本文は博主のオリジナルの文章で、転載して博文のリンクを添付してください!
複素数は、Aが実数部、Bが虚数部、iが虚数単位であり、i 2=−1を満たす(A+Bi)の従来の形式とすることができる.極座標下の指数形式(R×e(Pi),ここでRは複素モード,Pは放射角,iは虚数単位であり,これは三角形式(R(cos(P)+isin(P))に等価である.
2つの複素数のRとPが与えられ、2つの数の積を出力する従来の形式が要求される.
入力形式:
1行に2つの複素数のR 1,P 1,R 2,P 2を順次入力し,数字間をスペースで区切る.
出力フォーマット:
1行に
A+Bi
の形式で2数積の通常の形式が出力され、実部と虚部はいずれも2桁の小数を保持する.注意:B
が負数であれば、A-|B|i
と書くべきです.サンプルを入力:
2.3 3.5 5.2 0.4
出力サンプル:
-8.68-8.23i
考え方:
1、アルゴリズムが始まります.
2、R 1、P 1、R 2、P 2を読み込みます.3、A=(R1*R2)cos(P1+P2),B=(R1*R2)sin(P1+P2).4、Aの絶対値が0.01未満の場合、A=0.
5、Bの絶対値が0.01未満の場合、B=0.
6、Bがゼロより小さい場合、A-|B|iを出力し、そうでない場合、BはA+Biを出力する.出力時、各数字は2桁保持されます.
7、アルゴリズム終了
注意:実部、虚部ともに小数点を2桁保持しているため、A、Bの値が0と-0.01の間にある場合はゼロに設定する必要があります.そうしないと、使用例が通過できません.-----------------------------
コード:
//PAT1051V1
#include
#include
#define E 0.01
int main(){
double r1,r2,p1,p2,a,b;
scanf("%lf %lf %lf %lf",&r1,&p1,&r2,&p2);
a=(r1*r2)*cos(p1+p2);
b=(r1*r2)*sin(p1+p2);
if(fabs(a)
注意:fabs()とabs()の違い:abs()は整数で絶対値を取り、fabs()は浮動小数点数で絶対値を取ります.
参照先:
作者:チャネルソース:CSDN原文:https://blog.csdn.net/chr1991/article/details/51014382本文は博主のオリジナルの文章で、転載して博文のリンクを添付してください!