湖南省第六屆省賽 E 內部收益率

2021-07-16 13:37:23 字數 3110 閱讀 4142

內部收益率

time limit: 1000ms memory limit: 65535kb 64bit io format:

submit status

description

在金融中,我們有時會用內部收益率irr來評價專案的投資財務效益,它等於使得投資淨現值npv等於0的貼現率。換句話說,給定專案的期數t、初始現金流cf0和專案各期的現金流cf1, cf2, …,cft,irr是下面方程的解:

為了簡單起見,本題假定:除了專案啟動時有一筆投入(即初始現金流cf0 < 0)之外,其餘各期均能賺錢(即對於所有i=1,2,…,t,cfi > 0)。根據定義,irr可以是負數,但不能大於-1。

input

輸入檔案最多包含25組測試資料,每個資料佔兩行,第一行包含乙個正整數t(1<=t<=10),表示專案的期數。第二行包含t+1個整數:cf0, cf1, cf2, …, cft,其中cf0 < 0, 0 < cfi < 10000 (i=1,2,…,t)。t=0表示輸入結束,你的程式不應當處理這一行。

output

對於每組資料,輸出僅一行,即專案的irr,四捨五入保留小數點後兩位。如果irr不存在,輸出」no」,如果有多個不同irr滿足條件,輸出」too many」(均不含引號)

sample input

1 -1 2

2 -8 6 9

0sample output

1.00

0.50

這道題這裡還是錯的,這道題的irr是不能小於-1的,坑死我了。

題目錯了。

這道題直接二分就行了,明顯的上下界可以自己定,而且肯定是不會too many的情況,可以自己想一下。

/**************************

*create time: thu aug 11 08:27:02 2016

*author: mymilkbottles

*file name: e

**************************/

#include

using

namespace

std;

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define pi(x,y) printf("%d%c",(x),(y));

#define pin(x) printf("%d\n",(x));

#define si(x) scanf("%d",&(x))

#define sii(x,y) scanf("%d%d",&(x),&(y))

#define s3(x,y,z) scanf("%d%d%d",&(x),&(y),&(z))

#define rep(x,y,z) for(int (x)=(y);(x)<(z);++(x))

#define dep(x,y,z) for(int (x)=(y)-1;(x)>=(z);--(x))

#define read int tcasen;scanf("%d",&tcasen);for(int tcase=1;tcase<=tcasen;++tcase)

#define cls(x,y) memset((x),(y),sizeof((x)));

#define pb(x) push_back(x)

#define mp(x,y) make_pair((x),(y))

#define max3(value_a,value_b,value_c) max(max(value_a,value_b),value_c)

#define min3(value_a,value_b,value_c) min(min(value_a,value_b),value_c)

#define gt(x) (x)=clock();

#define fin(x) freopen(x,"r",stdin);

#define fout(x) freopen(x,"w",stdout);

///in this you can define long integer type

#define longtype long long

typedef longtype ll;

typedef

unsigned longtype ull;

const

int maxint=((~((unsigned)(0)))>>1);

const ll maxll=((~((unsigned longtype)(0)))>>1);

const

int inf=0x3f3f3f3f;

const

double pi=acos(-1.0);

const

int maxn=15;

const

double val=1e-4;

double a[maxn];

int n;

double get(double nums)

return t;

}int sgn(double t)

bool ok1(double nums)

int main()

int res=0;

int s1=0,s2=0;

left=-1.00,right=1000000000.00;

while(left<=right) else

if(sgn(t)>0) else right=mid-val;

}if(!ok1(left)) else ++res,++s1;

double ans1=left;

if(res>=2) else

if(res==1) else

if(res==0)

}#ifdef tangge

gt(tend);

printf("%.8lf\n",(tend-tstart)/1000.0);

#endif // tangge

return

0;}

弟弟的作業(湖南省第六屆程式設計大賽)

題目描述 你的弟弟剛做完了 100以內數的加減法 這部分的作業,請你幫他檢查一下。每道題目 包括弟弟的答案 的格式為a b c或者a b c,其中a和b是作業中給出的,均為不超過100的非負整數 c是弟弟算出的答案,可能是不超過200的非負整數,也可能是單個字元 表示他不會算。輸入輸入檔案包含不超過...

山東省第六屆省賽K題

題意描述 題目原型來自lol遊戲,乙個人和一座塔,共同打n個怪,每個怪都有一定的血量,塔和人都有無限血。每一 擊都是塔先打,而且塔只按順序打怪物,人後打,但人可以選擇任意乙個攻擊,但是人在每一輪可以攻擊也可以不攻擊。求人最多可以給幾個怪物以最後一擊。1 n 1000,塔,人的每次攻擊力x y 在 0...

湖南省第六集程式設計競賽 E 內部收益率(二分法)

description 在金融中,我們有時會用內部收益率irr來評價專案的投資財務效益,它等於使得投資淨現值npv等於0的貼現率。換句話說,給定專案的期數t 初始現金流cf 0和專案各期的現金流cf 1,cf 2,cft irr是下面方程的解 為了簡單起見,本題假定 除了專案啟動時有一筆投入 即初始...