1046 劃拳 (15分)
劃拳是古老中國酒文化的一個有趣的組成部分。酒桌上兩人劃拳的方法為:每人口中喊出一個數字,同時用手比劃出一個數字。如果誰比劃出的數字正好等于兩人喊出的數字之和,誰就赢了,輸家罰一杯酒。兩人同赢或兩人同輸則繼續下一輪,直到唯一的赢家出現。
下面給出甲、乙兩人的劃拳記錄,請你統計他們最後分别喝了多少杯酒。
輸入格式:
輸入第一行先給出一個正整數 N(≤100),随後 N 行,每行給出一輪劃拳的記錄,格式為:
甲喊 甲劃 乙喊 乙劃
其中
喊
是喊出的數字,
劃
是劃出的數字,均為不超過 100 的正整數(兩隻手一起劃)。
#include<iostream>
using namespace std;
int main()
{
int all = 0, a = 0, aa = 0, b = 0, bb = 0;
int aaa = 0, bbb = 0;
cin >> all;
for (int i = 0; i < all; i++)
{
cin >> a >> aa >> b >> bb;
if (a + b == aa && a + b != bb)
bbb++;
if (a + b != aa && a + b == bb)
aaa++;
}
cout << aaa << " " << bbb;
return 0;
}
1051 複數乘法 (15分)
複數可以寫成 (A+Bi) 的正常形式,其中 A 是實部,B 是虛部,i 是虛數機關,滿足 i2=−1;也可以寫成極坐标下的指數形式 (R×e(Pi)),其中 R 是複數模,P 是輻角,i 是虛數機關,其等價于三角形式 R(cos(P)+isin(P))。
現給定兩個複數的 R 和 P,要求輸出兩數乘積的正常形式。
輸入格式:
輸入在一行中依次給出兩個複數的 R1, P1, R2, P2,數字間以空格分隔。
輸出格式:
在一行中按照
A+Bi
的格式輸出兩數乘積的正常形式,實部和虛部均保留 2 位小數。注意:如果
B
是負數,則應該寫成
A-|B|i
的形式。
這個題照抄的這位同學的
https://www.cnblogs.com/moujun1001/p/9615461.html
C++中保留後面N位小數點比較麻煩,是以可以直接用printf,math函數中有sin,cos函數可以直接用
fabs——浮點數絕對值
abs——整數的絕對值
#include <cstdio>
#include <cmath>
int main() {
double a = 0, b = 0, c = 0, d = 0;
bool flag1 = false, flag2 = false;
scanf("%lf %lf %lf %lf", &a, &b, &c, &d);
double tmp1 = 0, tmp2 = 0;
tmp1 = a * c * cos(b + d);
tmp2 = a * c * sin(b + d);
if (fabs(tmp1) < 0.01) flag1 = true;
if (fabs(tmp2) < 0.01) flag2 = true;
if (flag1 && flag2)
printf("0\n");
else if (flag1 && !flag2)
printf("0.00%+.2fi\n", tmp2);
else if (!flag1 && flag2)
printf("%.2f+0.00i\n", tmp1);
else
printf("%.2f%+.2fi\n", tmp1, tmp2);
return 0;
}