利润统计函数c语言,C语言计算内部回报率(或名内部收益率)(IRR)
这是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)相关推荐
- 使用Excel计算财务NPV和内部收益率IRR
计算NPV各年的现金流量发生在各年年末和现金流发生在年初有区别,如本例发生在年初,则计算公式应该是: NPV=-500+200*(1+10)^(-1)+200*(1+10)^(-2)+200*(1+1 ...
- R语言sd函数计算数值标准差实战(Standard Deviation)
R语言sd函数计算数值标准差实战(Standard Deviation) 目录 R语言sd函数计算数值标准差实战(Standard Deviation) #基本语法 #sd
- R语言自定义函数计算dataframe每列中的缺失值NA的个数、缺失值问题及其填充示例
R语言自定义函数计算dataframe每列中的缺失值NA的个数.缺失值问题及其填充示例 目录
- R语言Eta squared计算实战:Eta squared表示可以用模型中给定的变量解释的方差的比例、拟合方差分析模型(two-way ANOVA)、计算Eta Squared
R语言Eta squared计算实战:Eta squared表示可以用模型中给定的变量解释的方差的比例.拟合方差分析模型(two-way ANOVA).计算Eta Squared 目录
- R语言IQR函数计算四分位数范围IQR(Interquartile Range)实战
R语言IQR函数计算四分位数范围IQR(Interquartile Range)实战 目录 R语言IQR函数计算四分位数范围IQR(Interquartile Range)实战 #基本语法
- R语言length函数计算向量、列表、字符串长度实战
R语言length函数计算向量.列表.字符串长度实战 目录 R语言length函数计算向量.列表.字符串长度实战 #基本语法
- R语言mode函数计算众数实战
R语言mode函数计算众数实战 目录 R语言mode函数计算众数实战 #手动编写众数函数 #存在多个众数的情况
- R语言distVincentyEllipsoid函数计算大圆距离实战(Great Circle Distance)
R语言distVincentyEllipsoid函数计算大圆距离实战(Great Circle Distance) 目录 R语言distVincentyEllipsoid函数计算大圆距离实战(Grea ...
- R语言distVincentySphere函数计算大圆距离实战(Great Circle Distance)
R语言distVincentySphere函数计算大圆距离实战(Great Circle Distance) 目录 R语言distVincentySphere函数计算大圆距离实战(Great Circ ...
- R语言distMeeus函数计算大圆距离实战(Great Circle Distance)
R语言distMeeus函数计算大圆距离实战(Great Circle Distance) 目录 R语言distMeeus函数计算大圆距离实战(Great Circle Distance) #导入ge ...
最新文章
- qfiledialog的取消_QT对话框去掉帮助和关闭按钮
- Python-OpenCV 处理图像(四)(五):图像直方图和反向投影 图像中边界和轮廓检测
- castle activerecord mysql_Castle ActiveRecord配置中需要注意的地方
- ubuntu java ide,ubuntu 环境 安装 C++ IDE Eclipse
- I.MX6 system.img unpack repack
- 请问 CType和DirectCast函数有何区别
- c++常用知识点,易错点,面试常问点
- 【摘录】Android2.3所支持语言的列表
- poj 2387 Til the Cows Come Home dijkstra
- 删除oracle补丁包,最新Oracle关键补丁:更新包括248个修复
- 京东联盟开发(10)——轮询获取数据
- 分享几个vue后台模板
- OCR测试——字体和背景颜色
- 计算机自动设置开机,怎么设置电脑自动开机
- mpa和pis_psig与mpa换算(压力单位换算psi)
- C语言练习①一英寸是多少厘米?
- 什么是SLA?SLA服务水平深度解析
- Linux系列之搭建云服务器入门教程
- 概率分布 ---- 泊松分布
- 2022 年中回顾|一文看懂预训练模型最新进展
热门文章
- 拿不到offer退全款 | 廖雪峰的“Web 全栈架构师”开班了!
- DTOJ3026 geronimo
- 推广邮件客户端(一):让人纠结的POP3客户端
- banq修复_慧荣SM3271AB U盘量产加密及修好图文详细教程
- 泊松分布的期望和方差推导
- 罗永浩“卖艺”还债:所有命运馈赠的礼物,都早已在暗中标好了价格
- GTK使用cairo绘图教程
- 2018 苹果开发者账号注册、付款流程图解
- 【TSOJ课程】20 1151 玛雅日历
- android 10.0 Camera2 去掉后置摄像头 仅支持前置摄像头功能