题目链接:点击打开链接
题目大意:和这个公式一样,
题目分析:就是二分法,之前题目读错了,求得(1+irr)的范围,但是irr的范围起始为-1,所以……
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cstring>
#include<math.h>
#define eps 1e-6
#define max
double CF[15];
int t;
double solve (double x)
{
double sum=0;
for(int i=0;i<=t;i++)
sum += CF[i]/pow(x,i);
return sum;
}
int main()
{
double l,r,mid=0;
while(scanf("%d",&t)&&t)
{
for(int i=0;i<=t;i++) scanf("%lf",&CF[i]);
l=0;r=1e6;
while(r-l>eps)
{
mid=(r-l)/2+l;
if(solve(mid)<0) r=mid;
else l=mid;
}
printf("%.2f\n",(r-l)/2+l-1);
}
return 0;
}

本文介绍了一种使用二分法求解内部收益率(IRR)的C++实现方法。通过不断缩小搜索范围来逼近IRR的真实值,适用于财务计算中求解特定公式的问题。
599

被折叠的 条评论
为什么被折叠?



