a647 - 投資專家
題目描述
題目要求計算藝術品投資的獲利率,並根據獲利率決定是否出售藝術品。給定投資金額和目前價值,計算獲利率,如果獲利率大於等於 10.00% 或小於等於 -7.00%,則出售(dispose),否則保留(keep)。
解題思路
對於每一件藝術品,計算獲利率 (目前價值 - 投資金額) / 投資金額 * (-100)。由於浮點數運算可能存在誤差,需要處理一些特殊情況,例如結果為 -0.00% 時輸出 0.00%。然後,根據計算出的獲利率,判斷是否出售或保留藝術品。
複雜度分析
- 時間複雜度: O(n)
- 空間複雜度: O(1)
程式碼
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
int n;
double a,b;
cin >> n;
while(n--){
cin >> a >> b;
double p=(a-b)/a*(-100);
if(p==-0)
p*=-1;
else if(p>0)
p+=0.000001;
else if(p<0)
p-=0.000001;
cout << fixed << setprecision(2) << p ;
(p>=10||p<=-7)?cout << "% dispose\n":cout << "% keep\n";
}
}