NowCoder最近专注于股票,他准备投资10000元,现在告诉你某一段时间内股票价格的历史数据,在不考虑税收等费用的前提下,请你帮忙计算10000元最多能变成多少元?
注:交易的时间和次数没有限制。
输入有多组数据。每组数据第一行是一个整数n (2≤n≤10),紧接着有n个正整数代表股票价格(假设股票价格都为整数)。
对应每一组数据,输出最初的10000元最多能变成多少元。
结果保留两位小数(四舍五入)。
5 1 2 3 4 5 5 3 1 2 5 4 4 4 3 2 1
50000.00 50000.00 10000.00
#include <cstdio>
#include <limits.h>
#include <vector>
using namespace std;
int main()
{
int n;
while (scanf("%d", &n) != EOF)
{
vector<int> stock(n);
for (int i = 0; i < n; ++i)
{
scanf("%d", &stock[i]);
}
double max_profit = 10000;
int min_price = INT_MAX;
for (int i = 0; i < n - 1; ++i)
{
if (stock[i] < stock[i + 1])
max_profit *= static_cast<double>(stock[i + 1]) / stock[i];
}
printf("%.2lf\n", max_profit);
}
}
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { int n = sc.nextInt(); double[] arr = new double[n]; for (int i = 0; i < n; i ++ ) arr[i] = sc.nextDouble(); double money = 10000; for (int i = 1; i < arr.length; i ++ ) money = arr[i] > arr[i - 1] ? money / arr[i - 1] * arr[i] : money; System.out.printf("%.2f\n", money); } } }
// write your code here cpp #include<iostream> #include <iomanip> #include<vector> using namespace std; int main(){ int n; while(cin>>n){ vector<double> data; for(int i=0;i<n;++i){ double temp; cin>>temp; data.push_back(temp); } double res = 10000.0; for(int i=1;i<n;++i){ if(data[i]>data[i-1]){ res = res/data[i-1] * data[i]; } } cout<<fixed<<setprecision(2)<<res<<endl; } return 0; }
// write your code here cpp #include <iostream> #include <iomanip> #include <vector> using namespace std; int main() { int n; while(cin>>n) { vector<int> stack(n); for(int i=0;i<n;++i) cin>>stack[i]; double res=10000; for(int i=1;i<n;++i) { if(stack[i]>stack[i-1]) res=res/stack[i-1]*stack[i]; } cout<<fixed<<setprecision(2)<<res<<endl; } return 0; }
#include <iostream> #include<vector> using namespace std; int main() { int length; double num, pre; while (cin >> length) { double sum = 10000.0; vector<double> data; vector<int> symbol(length, 1); cin >> num; data.push_back(num); pre = num; for (int i = 1; i < length; i++) { cin >> num; data.push_back(num); if (num > pre) symbol[i] = symbol[i - 1] + 1; pre = num; } int cnt = 0; for (int i = 0; i < length;) { if (symbol[i] != 1) { int k = i; while (i != length && symbol[i] != 1) i++; sum *= data[i - 1] / data[k - 1]; } else i++; } printf("%.2f\n", sum); } return 0; }