【牛刀小试3】e的值(精度为1e-6)

【牛刀小试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

【牛刀小试3】e的值(精度为1e-6)的相关文章

网络游戏中的(低精度)时间同步

对于网络游戏来说,从物体的移动.攻击到最基础的计时等等,都需要客户端与服务器保持时间的相对一致,那么服务器与客户端同步便是一个必须要解决的问题.通常,网络游戏都会利用心跳来进行同步,那么当客户端并不需要如此精度的同步时,有没有其他方法呢?这里主要讨论低精度的时间同步(精确到秒). 工作中接触过3种简单的时间同步方法: 首先,定义时间同步类 /// 32位操作系统 typedef unsigned int64_t QWORD; typedef unsigned long DWORD; class

BigDecimal 小数 浮点数 精度 财务计算

最常用法示例 构造方法 //测试构造方法 System.out.println("double类型的1.22:" + new BigDecimal(1.22));//1.2199999999999999733546474089962430298328399658203125 System.out.println("String类型的1.22: " + new BigDecimal("1.22"));//1.22 System.out.printl

机器学习-组合算法总结

组合模型 组合模型一般要比单个算法要好,下面简单的介绍下Bootstraping, Bagging, Boosting, AdaBoost, RandomForest 和Gradient boosting这些组合型算法. 1.Bootstraping Bootstraping: 名字来自成语"pull up by your own bootstraps",意思就是依靠你自己的资源,称为自助法,它是一种有放回的抽样方法,它是非参数统计中一种重要的估计统计量方差进而进行区间估计的统计方法.

JDBC规范(转)

公司开发一直用的是ibatis,进来心血来潮想研究一下源码,可是发现自己的JDBC似乎已经忘得差不多了,为了自己能顺利的研读ibatis的源码,于是乎找到了 XIAO_DF的JDBC规范的博客,转到自己博客方便阅读,感谢技术老铁的分享! JDBC接口规范 前言 JDBC(JavaDatabase Connectivity)表示Java查询引擎连接,由一组用Java编程语言编写的类和接口组成.JDBC为Java程序访问关系型查询引擎提供了编程接口,为查询引擎开发人员提供了一个标准的API,使他们能

循环和递归神经网络 (RNN) 与 长短时记忆 (LSTM)

即使不是 NLPer,现实中依然会面对很多序列问题. 全文内容来自 Ian Goodfellow, Yoshua Bengio 和 Aaron Courville 3位大老爷的作品"Deep Learning"的其中1章"Sequence Modeling: Recurrent and Recursive Nets" 1. 1986年 Rumelhart 等人提出循环神经网络.循环网络与多层网络相比,会共享每层的权重,从而能够扩展和应用网络于不同长度的序列案例,以及

C#实用杂记-EF全性能优化技巧

原文链接:http://www.makmong.com/947.html#comment-31 EntityFramework 优化建议 2016年1月15日 下午4:54 LEILINKANG Entity Framework目前最新版本是6.1.3,当然Entity Framework 7 目前还是预览版,并不能投入正式生产环境,估计正式版16年第一季度会出来,了解过EF7的部分新特性后,还是狠狠期待一下滴. EF性能问题一直为开发者所诟病,最让人纠结的也是这块,所以此次我也来谈谈EF的性能

c#关键字和常用类型表快查

类型 字节 取值范围 说明 bool 1 true/false/null 布尔类型 char 2 0x0000~0xffff Unicode 16 位字符 byte 1 0~255 无符号的 8 位整数 sbyte 1 -128 到 127 8 位带符号整数 short 2 -32,768 到 32,767 有符号 16 位整数 ushort 2 0~65535 无符号 16 位整数 int 4 -2,147,483,648 到 2,147,483,647 带符号的 32 位整数 uint 4

awk用法详解

awk简介 awk是一款文本处理工具,awk为文本处理提供了非常强大的功能,包括正则表达式的匹配,样式装入,程序的流程控制,数学运算,还包括了内置函数和变量.它完全可以作为一门独立的语言进行编程. 基本语法: awk [options] 'pattern{ action }' file file ... awk对文本的处理是以行为单位的,按行读取数据后再对每个字段进行处理. awk的大致工作流程如下: 1)首先读入第一行,然后将每个字段进行切割并赋值给$0,$1,$2,$3.....(默认分隔符

awk用法二

3.awk的printf命令 格式:printf format, item1 item2... 要点: (1) 要指定format: (2) 输出时不会自动换行,如需换行则需要给出\n: (3) format用于为后面的每个item指定其输出格式: (4) format格式的指示符都是%开头,后跟一个字符. format常用的字符: %c:显示字符的ASCII码 %d,%i:十进制整数: %e,%E:科学计数法: %f:显示浮点数: %g,%G:以科学计数法格式或浮点数格式显示数值: %s:显示

linux sed&awk详解

sed sed为文本处理三剑客之一.本身就是一个管道命令,可以将文件进行增加,修改,删除,选取等操作. 格式:sed [-nrefi] [command] "文本字符串" 选项: -r: 支持扩展正则表达式: -n: 静默模式:(sed有个模式空间和保持空间,默认sed会将执行的结果保存到模式空间里面,而模式空间默认情况是输出在屏幕上,加了-n,则阻止将模式空间的内容输出到屏幕上) -f:/path/to/script_file:从指定的文件中读取脚本并运行 -e script1 -e