【牛刀小试3】e的值(精度为1e-6)
主要知识:
1. 函数
2. 阶乘
3. for循环
4. if
5. break
下列公式是求e的表达式:
e= 1+1/1!+1/2!+1/3!+……1/n!
[ 程序1 ]
说明:使用函数求N!,再判断1.0/N!<=1e-6,如果满足就退出,反之就继续。
//e= 1+1/1!+1/2!+1/3!+……1/n!(精度为1e-6时)
#include <stdio.h>
int main( void )
{
inti;
intj;
doublee= 1 ;
doublesum= 1;
for(i= 1; ; i++ ) //这里也可以使用while循环代替
{
sum*=i; //每次求值都在上一次的基础
e+=1.0/ sum;
if(( 1.0/ sum) <= 1e-6 ) //判断
{
break; //结束for循环
}
}
printf("e= %lf\n" , e );
return 0;
}
运行结果:
[ 程序2 ]
说明:使用for语句求N!,再判断。
#include <stdio.h>
int factorial( int n ) //求N!阶乘的函数
{
intj= 0;
intsum= 1; //必须赋值,且为1
for(j= 1; j<= n ; j++ )
{
sum*=j;
}
returnsum;
}
int main( void )
{
inti= 0;
doublenum= 0.0;
doublee= 1.0; //必须赋值。。
do
{
i++;
num= 1.0/ factorial( i );
e+= num;
}while(num> 1e-6 ); //判断条件
printf("e= %lf\n", e );
return 0;
}
运行结果:
【指尖的微笑】错误在所难免,希望得到大家的指正^-^
转载时保留原文的链接http://oursharingclub.joinbbs.net和http://blog.csdn.net/mirrorsbeyourself