2029.cpp

来自「这是哈尔滨工业大学acmOJ的源代码」· C++ 代码 · 共 38 行

CPP
38
字号
/*  This Code is Submitted by wywcgs for Problem 2029 on 2006-05-27 at 10:22:20 */ 
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;

const double eps = 1e-6;

class Inv {
public:
	int m;
	double money;
	void make() { scanf("%d %lf", &m, &money); }
	double have(int e, double r) const { return money*pow(1+r, e-m+1); }
};

int main()
{
	int n, i, t;
	Inv inv[12];
	
	for(t = 1; scanf("%d", &n) != EOF && n > 0; t++) {
		if(t != 1) putchar('\n');
		for(i = 0; i < n; i++) inv[i].make();
		double total; int e; scanf("%d %lf", &e, &total);
		double l = 0, h = 1;
		while(h - l > eps) {
			double mid = (h + l) / 2, tn = 0;
			for(i = 0; i < n; i++) tn += inv[i].have(e, mid);
			if(tn > total) h = mid;
			else l = mid;
		}
		printf("Case %d: %.5lf\n", t, (h+l)/2);
	}
	
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?