题目地址: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. ACM 模板--邻接表 有向图 搜索算法
  2. 正则表达式中匹配的特殊字符
  3. php判断有没有分页,php分页怎么判断已经到了最后一页?
  4. 关于Android的硬件抽象层添加进Android系统默认编译的问题
  5. 无锁编程[0]__多线程条件下的计数器__原子的加/减/与/或/异或操作__sync_fetch_and_add,__sync_add_and_fetch等
  6. Babel 7 基础入门学习(详细版)
  7. thinkpad bios联想logo_最强12吋ThinkPad,X201终极改造:8代酷睿+双内存+NVMe
  8. 神经网络初始化trick:大神何凯明教你如何训练网络!
  9. HighCharts控制不显示“上下文菜单”
  10. sql python 教程_Python SQLAlchemy ORM教程(3)
  11. 常用idea快捷键大全
  12. 河北专接本C语言知识点
  13. 安居客数据的爬取并保存到MySQL
  14. 机械制造作业考研题目答案分享——定位误差及其计算
  15. php实现加密解密,PHP实现的加密解密处理类
  16. java毕业设计基于ssm框架的生鲜超市进销存管理系统
  17. 收录 几篇 关于 广义相对论 水星进动 的 文章
  18. 基于正交投影的实时三维人体姿态估计
  19. serverless入门介绍
  20. ipad2越狱完成!

热门文章

  1. 1112个人赛,最长回文串常见算法讨论
  2. systemtap原理及使用
  3. 两个常用的Infopath Service读取域值的函数
  4. 接口测试(apipost、jmeter和python脚本)
  5. 03-01 appium架构介绍与环境安装
  6. java封装为so,java挪用.so文件
  7. 前端程序员有前途吗?
  8. 没有基础怎么学Web前端?相关学习路线是什么?
  9. 新手如何入门学习前端?
  10. 关于慢开始、拥塞控制、快重传、快恢复算法的理解