这是ECNU OJ 上的一个题目,是某次的课后作业,我把它搬运上来与大家分享一下。

在 Excel 中有一个函数 IRR 用于计算一个投资项目的内部回报率(Internal return rate)。

在项目产生利润之前需要先投入建设资金(假设称为 c0),建成后每年产生的利润(假设称为 c1,c2…)。内部回报率(记为 r,范围为 −100%∽+100%)是到项目末期的现金流为 0 的贴现率。

例如:某项目建设资金为 10000,项目生产持续期为 3 年,每年利润为 3000,4000,5000,那么 r 满足:

−10000(1+r)^3+3000(1+r)^2+4000(1+r)+5000=0

Excel 计算结果 r 大约为 8.8963%。

本题的测试数据保证 r 只有唯一解。

Input

第 1 行:整数 T (1≤T≤10) 为问题数。

第 2∽3 行:第一个问题的数据。一行整数 n (1≤n≤100) 表示项目生产年数。后面 1 行包含 n+1 个由一个空格分隔的整数,表示投入的建设资金 c0 和 n 年中每年的利润 ci。c0>0,0≤ci≤1000000000。

第 4∽2T+1 行:后面问题的数据,格式与第一个问题相同。

Output

对于每个问题,输出一行问题的编号(0 开始编号,格式:case #0: 等),然后在每一行中输出计算出的 r(保留小数后 4 位)。

#include

#include

int main()

{

int n,i,m,j,j2;

double A,B,r,X,Y,C,x1;

long long huge=1000000000;

int a[102];

scanf("%d",&n);//n turn to T

for(i=1;i<=n;i++)

{

A=-1.0;B=1.0;//设定r的范围

scanf("%d",&m);

m=m+1;

printf("case #%d:\n",i-1);

for(j=1;j<=m;j++)

{

scanf("%d",&a[j]);

}

while((B-A)*huge>1.0)

{

r=(A+B)/2.0;

x1=A+1;

X=-1*a[1];

for(j2=2;j2<=m;j2++)

{

X*=x1;

X+=a[j2];

}

x1=B+1;

Y=-1*a[1];

for(j2=2;j2<=m;j2++)

{

Y*=x1;

Y+=a[j2];

}

x1=r+1;

C=-1*a[1];

for(j2=2;j2<=m;j2++)

{

C*=x1;

C+=a[j2];

}

if(X*C>0) A=r;

else B=r;

}

if((r-0)*huge<1&&(r-0)*huge>-1)

printf("0.0000%%\n");

else

printf("%.4lf%%\n",r*100);

}

return 0;

}

利润统计函数c语言,C语言计算内部回报率(或名内部收益率)(IRR)相关推荐

  1. 使用Excel计算财务NPV和内部收益率IRR

    计算NPV各年的现金流量发生在各年年末和现金流发生在年初有区别,如本例发生在年初,则计算公式应该是: NPV=-500+200*(1+10)^(-1)+200*(1+10)^(-2)+200*(1+1 ...

  2. R语言sd函数计算数值标准差实战(Standard Deviation)

    R语言sd函数计算数值标准差实战(Standard Deviation) 目录 R语言sd函数计算数值标准差实战(Standard Deviation) #基本语法 #sd

  3. R语言自定义函数计算dataframe每列中的缺失值NA的个数、缺失值问题及其填充示例

    R语言自定义函数计算dataframe每列中的缺失值NA的个数.缺失值问题及其填充示例 目录

  4. R语言Eta squared计算实战:Eta squared表示可以用模型中给定的变量解释的方差的比例、拟合方差分析模型(two-way ANOVA)、计算Eta Squared

    R语言Eta squared计算实战:Eta squared表示可以用模型中给定的变量解释的方差的比例.拟合方差分析模型(two-way ANOVA).计算Eta Squared 目录

  5. R语言IQR函数计算四分位数范围IQR(Interquartile Range)实战

    R语言IQR函数计算四分位数范围IQR(Interquartile Range)实战 目录 R语言IQR函数计算四分位数范围IQR(Interquartile Range)实战 #基本语法

  6. R语言length函数计算向量、列表、字符串长度实战

    R语言length函数计算向量.列表.字符串长度实战 目录 R语言length函数计算向量.列表.字符串长度实战 #基本语法

  7. R语言mode函数计算众数实战

    R语言mode函数计算众数实战 目录 R语言mode函数计算众数实战 #手动编写众数函数 #存在多个众数的情况

  8. R语言distVincentyEllipsoid函数计算大圆距离实战(Great Circle Distance)

    R语言distVincentyEllipsoid函数计算大圆距离实战(Great Circle Distance) 目录 R语言distVincentyEllipsoid函数计算大圆距离实战(Grea ...

  9. R语言distVincentySphere函数计算大圆距离实战(Great Circle Distance)

    R语言distVincentySphere函数计算大圆距离实战(Great Circle Distance) 目录 R语言distVincentySphere函数计算大圆距离实战(Great Circ ...

  10. R语言distMeeus函数计算大圆距离实战(Great Circle Distance)

    R语言distMeeus函数计算大圆距离实战(Great Circle Distance) 目录 R语言distMeeus函数计算大圆距离实战(Great Circle Distance) #导入ge ...

最新文章

  1. qfiledialog的取消_QT对话框去掉帮助和关闭按钮
  2. Python-OpenCV 处理图像(四)(五):图像直方图和反向投影 图像中边界和轮廓检测
  3. castle activerecord mysql_Castle ActiveRecord配置中需要注意的地方
  4. ubuntu java ide,ubuntu 环境 安装 C++ IDE Eclipse
  5. I.MX6 system.img unpack repack
  6. 请问 CType和DirectCast函数有何区别
  7. c++常用知识点,易错点,面试常问点
  8. 【摘录】Android2.3所支持语言的列表
  9. poj 2387 Til the Cows Come Home dijkstra
  10. 删除oracle补丁包,最新Oracle关键补丁:更新包括248个修复
  11. 京东联盟开发(10)——轮询获取数据
  12. 分享几个vue后台模板
  13. OCR测试——字体和背景颜色
  14. 计算机自动设置开机,怎么设置电脑自动开机
  15. mpa和pis_psig与mpa换算(压力单位换算psi)
  16. C语言练习①一英寸是多少厘米?
  17. 什么是SLA?SLA服务水平深度解析
  18. Linux系列之搭建云服务器入门教程
  19. 概率分布 ---- 泊松分布
  20. 2022 年中回顾|一文看懂预训练模型最新进展

热门文章

  1. 拿不到offer退全款 | 廖雪峰的“Web 全栈架构师”开班了!
  2. DTOJ3026 geronimo
  3. 推广邮件客户端(一):让人纠结的POP3客户端
  4. banq修复_慧荣SM3271AB U盘量产加密及修好图文详细教程
  5. 泊松分布的期望和方差推导
  6. 罗永浩“卖艺”还债:所有命运馈赠的礼物,都早已在暗中标好了价格
  7. GTK使用cairo绘图教程
  8. 2018 苹果开发者账号注册、付款流程图解
  9. 【TSOJ课程】20 1151 玛雅日历
  10. android 10.0 Camera2 去掉后置摄像头 仅支持前置摄像头功能