一、问题及代码
/*
* 文件名称: 1/n!相减加
* 作 者: 宋健
* 完成日期: 2016 年 3 月 11 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:
* 输入描述: 无
* 问题描述: 求解1/n!相减加 n=9
* 程序输出: sum=0.632121
* 问题分析: 利用单重循环
* 算法设计: 分别用3种循环(while~、for(;;)~、do~while)计算,并在其中计算阶乘
*/
#include<iostream.h>
void main()
{
int i=1;
double s=-1,sum=0;
for(i=1;i<=9;i++)
{
s*=(-1.0)/i;
sum+=s;
}
cout<<sum ;
}
#include<iostream.h>
void main()
{
int i=1;
double s=-1,sum=0;
while(i<=9)
{
s*=(-1.0)/i;
sum+=s;
i++;
}
cout<<sum ;
}
#include<iostream.h>
void main()
{
int i=1;
double s=-1,sum=0;
do
{
s*=(-1.0)/i;
sum+=s;
i++;
}
while(i<=9);
cout<<sum ;
}
二、运行结果:
三、心得体会:
难度有所提升,还需继续努力。
四、知识点总结:
1. s*=(-1.0)/i;时要注意1.0的小数,否则结果为整形1
2. 阶乘的计算式 s*=(-1.0)/i ;sum+=s;