题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1012
解法一:最直观的方法,就是递归计算来求各项之和
#include <iostream>
#include <iomanip>
using namespace std;
double curItem(int n)
{//当前子项
if (n==0)
{
return 1;
}
else
return curItem(n-1)/n;
}
double sum(int n)
{
if(n==0)
return 1;
else 
return sum(n-1)+curItem(n);
}
void caculateE(int n)
{//输出指定n下e的值
double tmp1,tmp2=1.0f,result=0.0f;
int i;
result = sum(n);
if(n==0||n==1)
{
cout<<n<<" "<<static_cast<int>(result)<<endl;
}
else if(n==2)
{
cout<<setiosflags(ios::fixed)<<setprecision(1);
cout<<n<<" "<<result<<endl;
}
else
{
cout<<setiosflags(ios::fixed)<<setprecision(9);
cout<<n<<" "<<result<<endl;
}
}
int main(int argc, char *argv[])
{
int n,i;
cout<<"n e"<<endl;
cout<<"- -----------"<<endl;
for(i=0;i<=9;++i)
{
caculateE(i);
}
cin>>i;
return 0;
}
解法二:题中给出的计算e的式子是由e^x的泰勒级数展开而得,在计算之前可以使用个技巧,就是把它们叠乘起来改写成:
e=(1+(1+1/2(1+1/3(1+1/4(1+…1/(n-1)(1+1/n))))),从最里面的括号往外算,共做n次除法和加法得一段结果,运算效率也是O(N*M),但是由于收敛速度快些,所以N项节省一些,
#include <iostream>
#include <iomanip>
using namespace std;
double doCaculate(int n)
{//实际的计算
double tmp1,tmp2=1.0f,result=0.0f;
int i;
for(i=n;i>=1;--i)
{
tmp1 = static_cast<double>(1)/static_cast<double>(i);
tmp2 = 1.0f+tmp1*tmp2;
}
return tmp2;
}
void caculateE(int n)
{//输出指定n下e的值,主要是输出格式的处理
double result = 0.0f;
result = doCaculate(n);
if(n==0||n==1)
{
cout<<n<<" "<<static_cast<int>(result)<<endl;
}
else if(n==2)
{
cout<<setiosflags(ios::fixed)<<setprecision(1);
cout<<n<<" "<<result<<endl;
}
else
{
cout<<setiosflags(ios::fixed)<<setprecision(9);
cout<<n<<" "<<result<<endl;
}
}
int main(int argc, char *argv[])
{
int n,i;
cout<<"n e"<<endl;
cout<<"- -----------"<<endl;
for(i=0;i<=9;++i)
{
caculateE(i);
}
return 0;
}
本文转自Phinecos(洞庭散人)博客园博客,原文链接:http://www.cnblogs.com/phinecos/archive/2007/12/25/1013925.html,如需转载请自行联系原作者

HDU1012 Calculate e相关推荐

  1. html计算平均分,Calculate phastCon Score for a gene —- 计算基因的phastCon平均分,判断基因保守型...

    Calculate phastCon Score for a gene -- 计算基因的phastCon平均分,判断基因保守型 PhastCon socre is the score from 0 t ...

  2. Maven 的Could not calculate build plan错误解决方法(不一定适用,看原因)

    Maven 的Could not calculate build plan错误解决方法(不一定适用,看原因): 1.将C:\Users\a\.m2\repository\org\apache\mave ...

  3. CUDA Samples: Calculate Histogram(atomicAdd)

    以下CUDA sample是分别用C++和CUDA实现的计算一维直方图,并对其中使用到的CUDA函数进行了解说,code参考了<GPU高性能编程CUDA实战>一书的第九章,各个文件内容如下 ...

  4. [记录]calculate age based on date of birth

    calculate age based on date of birth know one new webiste:eval.in run php code 转载于:https://www.cnblo ...

  5. 自定义表单mysql_自定义表单,计算答案然后更新mysql DB(Custom form, calculate answer then update mysql DB)...

    自定义表单,计算答案然后更新mysql DB(Custom form, calculate answer then update mysql DB) 我想要实现的是用户购买代币时的模拟支付系统. 我坚 ...

  6. R语言使用dplyr包使用group_by函数、summarise函数和mutate函数计算分组下的均值、标准差、样本个数、以及分组均值的95%执行区间对应的下限值和上限值(Calculate CI)

    R语言使用dplyr包使用group_by函数.summarise函数和mutate函数计算分组下的均值.标准差.样本个数.以及分组均值的95%执行区间对应的下限值和上限值(Calculate 95% ...

  7. Eclipse创建的Maven项目报错Could not calculate build plan: Plugin

    Eclipse创建的Maven项目报错Could not calculate build plan: Plugin 2018年05月10日 21:59:25 TIMI-Nian 阅读数:5040 标签 ...

  8. [WUST2017]一组简单一点的题目(三) A - Calculate S(n)

    题目:A - Calculate S(n) Calculate S(n). S(n)=1 3+2 3 +3 3 +......+n 3 . Input Each line will contain o ...

  9. HDOJ(HDU) 2139 Calculate the formula(水题,又一个用JavaAC不了的题目)

    Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) 看到这个时间,我懵逼了... 果然,J ...

最新文章

  1. java web 总结,Java Web 相关概念经典总结(一)
  2. Matlab读和写图像需要注意的问题
  3. C#——《C#语言程序设计》实验报告——Windows桌面编程
  4. pyspark的rdd直接写入mysql
  5. python三个数求和_Python:list是否包含3个连续的整数,总和为7...
  6. .NET Core 2.0版本预计于2017年春季发布
  7. 前端技术周刊 2018-09-10:Redux Mobx
  8. OD使用教程20 - 调试篇20
  9. Mybatis动态sql的使用
  10. mysqldump文件中有SET @@SESSION.SQL_LOG_BIN= 0;解决方法
  11. 版本为2.5的OpenMP规范中的编译制导指令汇总
  12. mysql怎么保存视图_MySQL的视图和存储
  13. Android BlueDroid(一):BlueDroid概述
  14. OpenXR+Runtime:OpenXR SDK Source Code源码编译
  15. Crystal Reports - New Report
  16. 项目实战:Qt+OpenCV大家来找茬(Qt抓图,穿透应用,识别左右图区别,框选区别,微调位置)
  17. 全球首个CTLA-4抑制剂逸沃在中国上市;全球首个原发性轻链型淀粉样变治疗药物兆珂速在华获批 | 医药健闻...
  18. 云打码实现验证码识别
  19. .NET高级工程师面试题之SQL篇
  20. js中hex各种转换总结以及crc

热门文章

  1. MySql避免重复插入记录方法(ignore,Replace,ON DUPLICATE KEY UPDATE)
  2. WindowServer2003中IIS6.0允许运行32位程序
  3. HDU 1083 Courses 匹配
  4. 跟我一起创建一个简单的javascript ajax对象 ---献给Web开发初学者
  5. java回忆录—输入输出流详细讲解(入门经典)
  6. 软件测试--接口测试入门
  7. java 指向同一地址,Sring a和String b的值相同,是不是指向同一个地址呢
  8. 温州服务器付费方式_新购买的服务器是选择包年包月还是按流量计费呢?
  9. python里default_新手对python default不是很理解它有什么用途
  10. 前端系统化学习【JS篇】:(四-3)基本数据类型之Boolean篇