C语言求1-1/3+1/5-1/7+...——小程序,大道理

2023-05-16

问题:用C语言编写程序求1-1/3+1/5-1/7+...

示例:


 1 #include <stdio.h>
 2 void main(){
 3     int n=1;
 4     float sum=0,a=1;
 5     while(a<=100){
 6         sum=sum+n/a;
 7         n=-n;
 8         a=a+2;
 9     }
10     printf("%f\n",sum);
11 }  

分析:

数列的求和问题,每一项正负交替,并且分母递增2。

首先,这是一个加法(累加)问题,涉及到被加数,加数,和的概念。每一次加法运算产生的和又作为新的被加数,然后加上一个新的加数,并且新的加数之间(即每一项之间)具有规律性。这样不断重复做加法运算。

计算离不开记忆,对于人,每一次运算的中间结果都要记住或者记到草稿纸上才能进行下一步计算,并且求出新结果后旧的结果无需再记忆;计算机也是如此,对于计算机来说,数据保存在存储单元中,在程序中用变量来表示,用来暂存各种数据,包括原始数据,中间结果和最终结果。并且,变量的值可以改变,当旧的值不再需要并且产生新值之后,变量便更新为新值。只从这点来看,草稿纸就毫无优势可言~

对于累加问题,被加数以及和(新的被加数)可以用同一个变量(sum)来保存,它不断地被更新。一开始为0,然后为各种中间结果,直到最后为最终结果并输出。另外,加数也是一个变量,它每次更新为新的值,并且这种更新是有规律可循的:作为一个分数,每次分子更新为相反数,分母则递增2。分子分母都在变化,因此可分别作为一个变量。

但是,我们并没有用一个真正的变量来表示加数,而是用一个含有变量的表达式n/a,这样可以节省一个变量。

然后,C代码要做的除了声明和初始化变量,就是根据逻辑(规律)更新变量(包括变量的引用和赋值)。并且,正因为变量的更新都是有规律可循的,都是在旧值的基础上做运算,可以用一个通用公式来表示,即具有相同的形式,所以可以采用循环结构来实现(这里,我们只循环到分母为99的项)。

小结:

我们从变量的角度分析了这个程序。做的事情无非是变量的声明和初始化(有时变量的输入取代了初始化),以及变量的多次引用和更新(首次赋值称为初始化,再次赋值便是更新),最终可能还要输出它,输出到屏幕或磁盘等。

从形式上来看,变量出现在赋值符(=)的左边(声明并初始化时,赋值时),或右边(引用)。


 1 #include <stdio.h>
 2 void main(){
 3     /*变量的声明及初始化*/
 4     int n=1;
 5     float sum=0,a=1;
 6     /*变量的循环引用及赋值*/
 7     while(a<=100){
 8         sum=sum+n/a;
 9         n=-n;
10         a=a+2;
11     }
12     /*变量的输出*/
13     printf("%f\n",sum);
14 }  

注意:

这里面有一个坑,就是如果n和a都是整型变量的话,n/a也会是整型,而不是浮点型,结果就会有错误。因此,我们将a声明为浮点型。

拓展:

比较有意思的是,利用这个数列(无穷级数)可以求得圆周率。即将其乘以4便得到π的近似值,项数越多越精确。

转载于:https://www.cnblogs.com/madbean/p/9121483.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言求1-1/3+1/5-1/7+...——小程序,大道理 的相关文章

  • power design初步使用01

    来自大佬 xff1a 别先生 点击即可查看原文 1 xff1a 入门级使用PowerDesigner软件创建数据库 xff08 直接上图怎么创建 xff0c 其他的概念知识可自行学习 xff09 我的PowerDesigner版本是16 5
  • http服务器demo,简单学习 vs下可以运行

    以下是使用C 43 43 在VS环境下编写的一个简单的HTTP服务器示例代码 xff1a include lt iostream gt include lt string gt include lt WS2tcpip h gt includ
  • power design初步使用02

    概念数据模型 逻辑数据模型 物理数据模型详解 出自 xff1a https www cnblogs com joechinochl articles 5252518 html 数据模型所描述的内容包括三个部分 xff1a 数据结构 数据操作
  • power design综合应用

    出自大佬宋辉 xff1a https www cnblogs com dfsxh articles 1295087 html Power Designer是Sybase公司的CASE 工具集 xff0c 使用它可以方便地对管理信息系统进行
  • LTE中layer的概念以及rank的概念

    原帖地址 xff1a https www mscbsc com bbs thread 293293 1 1 html https www mscbsc com askpro question83176 MIMO 表示多输入多输出 MIMO系
  • Endnote--在参考文献列表中添加DOI

    参考了此网站的内容 xff1a https www jianshu com p 11411c1c8495 1 在Endnote中给参考文献列表添加DOI的方法 xff1a Edit gt Output styles gt Eidt AJTR
  • t检验中的t值和p值是什么关系_t检验和p值的关系

    t检验中的t值和p值是什么关系 t检验和p值的关系 t检验 中通过样本均值 总体均值 样本标准差 样本量 可以计算出一个t值 xff0c 这个t值和p值有什么关系 xff1f 根据界值表又会查出一个数 xff0c 这个数和t值比较 xff0
  • ORACLE 之 标识符无效 问题总结及解决方案

    今天自己在家里做毕业设计 xff0c 遇到了ORACLE数据库的一些问题 xff0c 所以来总结一下 自己在上班的时候也遇到客户过提过这样的问题 xff0c 当时自己在百度上查了 xff0c 给客户解决完 自己也没有在意 xff0c 这次又
  • 数据结构总结

    本文目录 xff1a 数据结构分类1 数组2 栈3 队列4 链表5 树6 散列表7 堆8 图 数据结构分类 数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成 常用的数据结构有 xff1a 数组 xff
  • Netty源码分析 (八)----- write过程 源码分析

    上一篇文章主要讲了netty的read过程 xff0c 本文主要分析一下write和writeAndFlush 主要内容 本文分以下几个部分阐述一个java对象最后是如何转变成字节流 xff0c 写到socket缓冲区中去的 pipelin
  • 接口调用方法详解

    接口调用方法详解 基础知识 接口定义 xff1a 接口是一组已命名的方法签名 所以接口里可以定义方法 属性 事件 xff0c 因为这些本质上都是方法 但是 xff0c 接口不能定义任何的构造函数 接口的可访问性 xff1a 类本身的修饰符可
  • C++ Primer Plus (Fifth Edition)pdf

    下载地址 xff1a 网盘下载 本书是久负盛名的C 43 43 经典教程 xff0c 其内容是C 43 43 大师Stanley B Lippman丰富的实践经验和C 43 43 标准委员会原负责人Jos e Lajoie对C 43 43
  • ROS----名字空间namespace

    1名称 1 1图资源名称Graph ResourceNames 图形资源名称提供了一个分层命名结构 xff0c 用于ROS计算图中的所有资源 xff0c 例如节点 xff0c 参数 xff0c 主题 和服务 这些名称在ROS中非常强大 xf
  • offboard Control

    1 使用mavlink based软件 没有ROS 2 使用无线连接 xff0c 没有ROS 3 Onboard computer 43 ROS 43 WiFi link recommended Control Methods 有下面两种方
  • 关于485通信不稳定问题解决方案[STM32产品问题]

    485通讯不稳定的问题 xff08 具体表现为有时能通讯上 xff0c 有时通讯不上 xff09 RS485在连接设备过多 通讯距离过长 双绞线质量差 xff0c 接线不规范 等 xff0c 都会导致通讯不稳定的问题 解决方案 xff1a
  • pixhawk与linux通信,模块 & 命令 – 通信 - PX4 开发指南

    mavlink 说明 该模块实现MAVLink协议 xff0c 该协议可以在串行链路或UDP网络连接上使用 它通过uORB与系统通信 xff1a 一些消息直接在模块中处理 例如 xff0c 任务协议 xff0c 其他则通过uORB发布 例如
  • ROS进阶学习笔记(11)- Turtlebot Navigation and SLAM - ROSMapModify - ROS地图修改

    ROS进阶学习笔记 xff08 11 xff09 Turtlebot Navigation and SLAM ROSMapModify ROS地图修改 ROS进阶学习笔记 xff08 11 xff09 Turtlebot Navigatio
  • STM32F103ZET6的中断管理

    1 STM32的中断 STM32的中断管理是属于内核部分的 xff0c 所以中断管理的寄存器也是属于内核组 xff0c 不属于芯片外设 xff0c 在查看相关资料的时候 xff0c 需要查看相对应的内核手册 STM32F103ZET6是Co
  • c语言strrchr()函数,C 库函数 – strrchr() ——jQuery中文网

    C 库函数 strrchr 描述 C 库函数 char strrchr const char str int c 在参数 str 所指向的字符串中搜索最后一次出现字符 c 一个无符号字符 的位置 声明 下面是 strrchr 函数的声明 c
  • 让我持续下去的理由

    牛仔裤 格子衬衫 运动鞋和双肩包 如果把这四个词放在一个人的身上 xff0c 似乎不用描述长相 xff0c 大家就对他的职业有了猜测 八成是个程序员吧 这个被笑称 月入五万过成月入五千样子 的群体 xff0c 以 收入高 脑回路简单 一成不

随机推荐

  • 一个工作多年的嵌入式工程师漫谈

    1 关于公司 公司是做什么的 xff1f 是属于项目型公司还是属于产品型公司 xff1f 我觉得公司分为两种 xff0c 一种做产品 xff0c 一种做项目 做产品的公司 xff0c 老板一般都会讲梦想 xff0c 情怀 梦想是什么 xff
  • 优秀APP启动页的设计思维

    一 APP启动项的定义 启动APP时 xff0c 第一画面一般都会是一张含有logo的图片 这张图片就叫做启动页面 二 APP启动页的设计方法 启动页设计要与主界页面要相似 xff0c 颜色 xff0c 风格等都不要有太大的跨度 xff0c
  • GAAS installlation on Ubuntu 18.04

    GAAS installlation on Ubuntu 18 04 GAAS 安装教程 xff1a document GAAS 中的安装教程中提到的 ROS Kinetic xff08 LTS 版 xff09 并不是最新的版本 xff0c
  • Django使用request和response对象

    size 61 large url http iluoxuan iteye com blog 1738522 url size 当请求一张页面时 xff0c Django把请求的metadata数据包装成一个HttpRequest对象 xf
  • 去哪儿网2015校招研发类笔试题

    从网上找到的题目 xff0c 自己做了一遍 1 二分查找 2 给定一个字符串 xff0c 得到这个字符串中首先出现两次的那个字符 方法 xff1a 可以用一个hash map或者数组来存储字符出现的次数 xff0c 一旦有一个出现了2次 x
  • 如何查看mysql镜像参数_Docker中查看Mysql数据库中的各环境参数

    通过官方的文档可以看到运行MySQL容器的命令是 xff1a docker run name some mysql e MYSQL ROOT PASSWORD 61 mypwd d mysql tag 如 xff1a docker run
  • 趣味离散数学题(巧猜围棋子)

    甲手里有一个围棋子 xff0c 要乙来猜棋子的颜色是白的还是黑的 xff0e 条件是 xff1a 只允许乙问一个只能回答 是 或 否 的问题 xff0c 但甲可以说真话 xff0c 也可以说假话 xff0e 问乙可以向甲提出一个什么问题 x
  • nrm安装与使用

    一 什么是nrm nrm 是一个 npm 源管理器 xff0c 允许你快速地在 npm源间切换 什么意思呢 xff0c npm默认情况下是使用npm官方源 xff08 使用npm config ls命令可以查看 xff09 xff0c 在国
  • Docker中的Dockerfile命令详解FROM RUN COPY ADD ENTRYPOINT...

    Dockerfile指令 这些建议旨在帮助您创建高效且可维护的Dockerfile FROM FROM指令的Dockerfile引用 尽可能使用当前的官方图像作为图像的基础 我们推荐Alpine图像 xff0c 因为它是严格控制的并且尺寸小
  • 视觉单词模型、词袋模型BoW

    多用于图像检索 分类 3 2 1 4 视觉单词模型 视觉词袋 xff08 BoVW xff0c Bag of Visual Words xff09 模型 xff0c 是 词袋 xff08 BoW xff0c Bag of Words xff
  • 卡尔曼滤波器推导与解析 - 案例与图片

    在SLAM的后端优化中有存在这两大类优化方法 滤波器优化和非线性优化 目前大多数基于视觉的SLAM算法都是采用的非线性优化的相关方法 如应用较多的G2O图优化框架 但是滤波器的方法仍然在某些情况下有应用 且以前不少论文都是基于滤波器优化的方
  • Ubuntu下使用USB串口接收数据

    环境 xff1a VMware xff0c Ubuntu 14 xff0c uBlox EVK M8L 1 把包含USB接口的uBlox插入PC中 xff0c 确定虚拟机右下角uBlox连接到虚拟机中 xff1b 2 在Ubuntu的终端中
  • docker ubuntu桌面

    docker run it rm p 8080 80 dorowu ubuntu desktop lxde vnc 转载于 https www cnblogs com fengjian2016 p 11417340 html
  • 三种蓝牙架构实现方案(蓝牙协议栈方案)

    蓝牙架构实现方案有哪几种 xff1f 我们一般把整个蓝牙实现方案叫做蓝牙协议栈 xff0c 因此这个问题也可以这么阐述 xff1a 蓝牙协议栈有哪些具体的架构方案 xff1f 在蓝牙协议栈中 xff0c host是什么 xff1f cont
  • linux 与 单片机 串口通信

    本人最近在尝试在linux下用串口与单片机通信 xff0c 虽然说网上资料例程五花八门 xff0c 但是缺乏严格的注释或者完整的实例 xff0c 或许本人能力有限 xff0c 某些问题无法理解 xff0c 在实际过程中遇到不少问题 xff0
  • 【异常】postman能够请求成功获取到参数,前端请求的却请求不到

    1 前端联调的时候 xff0c 反馈自己的参数没有生效 xff0c 无论传递任何参数都是一样的结果 盯了一下日志发现 postman请求的是 34 getParameter 34 34 provinceCode 34 34 11 34 34
  • JavaScript自动播放背景音乐

    问题描述 js控制audio自动播放音乐时报错 xff1a Uncaught in promise DOMException 我的报错之前的代码 xff1a code lt audio id 61 34 myaudio 34 src 61
  • 创建实例报错 未找到主机

    删除nova服务 重新注册 转载于 https www cnblogs com lsw blogs p 11594602 html
  • 创建实例 报错 secret 密钥找不到

    lt secret ephemeral 61 39 no 39 private 61 39 no 39 gt lt uuid gt 0668cc5e 7145 4b27 8c83 6c28e1353e83 lt uuid gt lt usa
  • C语言求1-1/3+1/5-1/7+...——小程序,大道理

    问题 xff1a 用C语言编写程序求1 1 3 43 1 5 1 7 43 示例 xff1a 1 include lt stdio h gt 2 void main 3 int n 61 1 4 float sum 61 0 a 61 1