【牛刀小试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://codingit.howbbs.com和http://blog.csdn.net/mirrorsbeyourself
时间: 2024-10-14 21:51:15