C++语法17 利用for循环进行求和与求积

语法阶段已经更新到第17章了,前面的知识你都学会了吗?如果还没有学习前面的知识,请点击语法专栏进行[http://t.csdnimg.cn/7EcJm]学习哦!

目录

循环求和

整数求和

解析

参考代码

分数求和

解析

参考代码

偶数求和

解析

参考代码

循环求积

训练:累乘求积

解析

参考代码

阶乘

训练:求阶乘

解析

参考代码

训练: 求阶乘的和

解析

参考代码


循环求和

求1+2+3+... ...+1000的和:

可以把这个加法运算,看成一个循环的过程。用变量s表示运算的结果,s的初始值为0,依次让s的值增加1,2,... ... ,1000,即:

s = s+1;s = s+2; ... ... ;s = s+1000;

用变量i表示s每次增加的数值,即:

for(int i=1;i<=1000;i++)
{s = s+i;
}

即:s+1+2+3+4+ ... ... +1000

整数求和

输入整数m,n, 求m~n之间所有整数的和。

【输入格式】输入两个空格隔开的整数m,n(1<=m<=n<=1000)

【输出格式】输出一个整数,表示m~n的整数和

【输入样例】1 5

【输出样例】15 

解析

1.求m~n之间所有整数的和,即m+(m+1)+(m+2)+... ...+(n-1)+n,从m开始,每次加1,可循环(n-m+1)次,从m加到n,即:for(int i=m;i<=n;i++)

2.用s来保存运算结果,即:s = s+i; // 可简写为s+=i;

参考代码

#include<iostream>
using namespace std;
int main( )
{int m,n,s=0;cin>>m>>n;for(int i=m;i<=n;i++){s+=i;}cout<<s;return 0;
}

分数求和

输入整数n,求1+1/2+1/3...+1/n的和,保留2位小数。

【输入格式】输入一个整数n(1<=n<=1000)

【输出格式】输出一个实数,表示求和的结果,保留2位小数

【输入样例】8

【输出样例】2.72

解析

1.从1+1/2+1/3+...+1/n,每次加一个分数,则循环n次,即:for(int i=1;i<=n;i++)

2.用s来表示运算的结果,s应声明为实数类型变量,所求结果也是浮点型,即1/n的结果也应为浮点型,将1改为1.0即可:s+=1.0/i;

参考代码

#include <iostream>
#include <cstdio>
using namespace std;
int main()
{double s=0;int n;cin>>n;for(int i=1;i<=n;i++){s+=1.0/i;}printf("%.2f",s);return 0;
}

偶数求和

输入整数m,n,求m~n之间所有偶数的和。

【输入格式】输入两个空格隔开的整数m,n(1<=m<=n<=1000)

【输出格式】输出一个整数,表示求和的结果

【输入样例】1 5

【输出样例】6

解析

1.从m加到n,先判断m是否是偶数,然后看m+1,m+2,一直到n,即:for(int i=m;i<=n;i++)

2.本题是让我们求偶数和,首先要先判断m是否是偶数(判断一个数是否是偶数,条件为:i%2==0,如果等于0则为偶数),如果m是偶数,就累加到s,再判断m+1,m+2,一直到n。

if(i%2==0)  s+=i;

参考代码

#include<iostream>
using namespace std;
int main( )
{int s=0,m,n;cin>>m>>n;for(int i=m;i<=n;i++)if(i%2==0)s+=i;cout<<s;return 0;
}

求1*2*3*... ...*10的积:

这个算式与求和十分类似,我们可以类比循环求和的代码,将”+”替换成”*”,即可得到循环求积的代码,即:

s = s*1;s = s*2; ... ... ;s = s*10;

用来求积的变量s的初始值要为1,这样才不会改变算式的运算结果。

循环对应的算式:s*1*2*3...*10。

注意:用来求积的变量最好是long long 类型,累乘运算很容易超出int 的范围。

循环求积

训练:累乘求积

输入整数m,n(m,n<=15),求m*(m+1)*...*n的结果。

【输入格式】输入两个空格隔开的整数m,n(1<=m<=n<=15)

【输出格式】输出一个整数,表示求积的结果

【输入样例】1 3

【输出样例】6

 

解析

  1. 求m~n之间所有整数的乘积,即m*(m+1)*(m+2)*... ...*(n-1)*n,从m开始,每次加1,可循环(n-m+1)次,从m乘到n,即:for(int i=m;i<=n;i++)
  2. 用s来保存运算结果,即:s = s*i; //  可简写为s*=i;

 

参考代码

#include<iostream>
using namespace std;
int main( )
{long long s=1;int m,n;cin>>m>>n;for(int i=m;i<=n;i++){s=s*i;}cout<<s;return 0;
}

阶乘

一个正整数的阶乘:是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!(数学表示)。

例如:

0! = 1;

1! = 1;

4! = 1*2*3*4;

训练:求阶乘

输入整数n(n<=15),求n!。

【输入格式】输入一个整数n(1<=n<=15)

【输出格式】输出一个整数,表示n!

【样例输入】4

【样例输出】24

 

解析

  1. 求n的阶乘,相当于1*2*3*...*n,从1乘到n,每次乘一个数,则循环n次,即:for(int i=1;i<=n;i++)
  2. 循环体内用s来保存结果,即:s = s*i;

 

参考代码

#include<iostream>
using namespace std;
int main()
{long long s=1;int n;cin>>n;for(int i=1;i<=n;i++){s=s*i;}cout<<s;return 0;
}

训练: 求阶乘的和

输入整数n,求1!+2!+3!...+n!的和。

【输入格式】输入一个整数n(1<=n<=15)

【输出格式】输出一个整数,表示求和的结果

【样例输入】3

【样例输出】9

 

解析

1.求i的阶乘,从i等于1开始计算i的阶乘,当i等于1时计算1的阶乘,当i=2时计算2的阶乘... ...当i等于n时求n的阶乘,即:

for(int i=1;i<=n;i++)
{jc=jc*i;
}

2.我们要求的是阶乘的和,求完阶乘,还要将当前i的阶乘累加到变量s中,即:

for(int i=1;i<=n;i++)
{jc=jc*i;s=s+jc;
}

参考代码

#include<iostream>
using namespace std;
int main( ){long long s=0,jc=1;int n;cin>>n;for(int i=1;i<=n;i++){jc=jc*i;s=s+jc;}cout<<s;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/30579.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

opencv学习笔记(1)

图像&视频的加载与展示 如何通过OpenCV创建显示窗口 namedWindow():创建一个窗口&#xff0c;并给窗口起一个名字&#xff0c;当起好名字后&#xff0c;可以选择显示哪个窗口 imshow()&#xff1a;显示窗口 &#xff0c;第一个参数是窗口的名字&#xff0c;如果没有会自动…

代码随想录训练营第十四天 226翻转二叉树 101对称二叉树 104二叉树的最大深度 111二叉树的最小深度

第一题&#xff1a; 原题链接&#xff1a;226. 翻转二叉树 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 递归法&#xff1a;使用中序遍历的操作&#xff0c;中左右&#xff0c;在遍历到中间节点的时候对它左右节点进行交换。 代码如下&#xff1a; /*** Def…

BC-Linux 8.6最小化安装的服务器启用GNOME图形化界面

本文记录了BC-Linux 8.6最小化安装的服务器如何启用GNOME图形化界面的过程。 一、服务器环境 1、系统版本 [rootlocalhost ~]# cat /etc/os-release NAME"BigCloud Enterprise Linux" VERSION"8.6 (Core)" ID"bclinux" ID_LIKE"rhel fe…

在VScode中创建PHP环境

一、下载PHP Server 和 PHP Debug这两个扩展 二、下载完成之后&#xff0c;在VScode中&#xff0c;打开我们写代码的文件 这里是我事先创建好的一些文件&#xff0c;本次环境搭建只需要创建一个.php后缀的文件即可。 先选中.php文件&#xff0c;再点击文件。 点击首选项&#x…

AI之Lambda index

简介 Lambda index 是一个用于衡量语言模型性能的指标,它主要评估模型在生成文本时的语言连贯性和逻辑性。它是由 OpenAI 在发布 GPT-3 模型时提出的。 具体来说,lambda index 反映了模型生成的文本中单词与上下文的关联程度。它的计算方式如下: 1、给定一个文本序列 X (x1…

使用npm发布自己的插件包

文章目录 1. 准备工作1.1 拥有一个npm账号1.2 准备你的插件代码1.3 编写package.json文件 2. 本地测试3. 发布到npm3.1 登录npm3.2 发布插件3.3 更新插件 4. 注意事项 在JavaScript和Node.js的生态系统中&#xff0c;npm&#xff08;Node Package Manager&#xff09;是一个非常…

游戏中的寻路算法研究

1)Unity NavMesh研究 思考&#xff1a;毫无疑问&#xff0c;unity中自带的navmesh寻路是比较健全的&#xff0c;无奈在服务器中无法使用&#xff0c;这样子我们没办法做怪的导航&#xff0c;但是可以先体验下都有哪些api&#xff0c;并且可以可视化的看效果。 1)打开导航网格…

【课程系列05】某心科技AI大模型微调实战营-应用篇

网盘链接 链接: https://pan.baidu.com/s/1oARULXsXn8frkqq4ZKHBLA --来自百度网盘超级会员v6的分享 课程收获 课程内容涉及大模型的介绍、Transformer、Encoder、高级微调技术、Alpaca、AdaLoRA、QLoRA、Prefix Tuning和Quantization等主题 课程截图

龙芯LS2K0300久久派上手体验

介绍 芯片 龙芯2K0300芯片是一款基于LA264处理器核的多功能SoC芯片&#xff0c;可广泛适用于工业控制、通信设备、信息家电和物联网等领域&#xff1b;该芯片采用高集成度设计&#xff0c;可提供丰富的功能接口&#xff0c;满足多场景应用需求&#xff0c;同时支持低功耗技术…

VMware 虚拟机共享宿主机文件夹

一、背景 在虚拟机中&#xff0c;需要写文件到宿主机的文件系统中 宿主机的文件共享给虚拟机使用 这些场景就涉及到VM的虚拟机怎么访问宿主机的磁盘文件夹 二、软件背景 宿主机&#xff1a;window机器&#xff0c;本文是win7 虚拟软件&#xff1a;VMware12.5.6&#xff0…

小山菌_代码随想录算法训练营第二十七天| 93.复原IP地址 、

93.复原IP地址 文档讲解&#xff1a;代码随想录.复原IP地址 视频讲解&#xff1a;回溯算法如何分割字符串并判断是合法IP&#xff1f;| LeetCode&#xff1a;93.复原IP地址 状态&#xff1a;已完成 代码实现 class Solution { private:vector<string> result; // 记录结…

基于自编码器的滚动轴承异常检测方法(NASA-IMS数据,Python)

代码较为简单。 import numpy as np import pandas as pd from tensorflow import keras from tensorflow.keras import layers from matplotlib import pyplot as plt df_stats_Ch1_test2 pd.read_csv("estadisticos_test2_ch1.csv" , sep ,) X_Ch1 df_stats_Ch…

移植案例与原理 - HDF驱动框架-驱动配置(2)

1.2.7 节点复制 节点复制可以实现在节点定义时从另一个节点先复制内容&#xff0c;用于定义内容相似的节点。语法如下&#xff0c;表示在定义"node"节点时将另一个节点"source_node"的属性复制过来。 node : source_node示例如下&#xff0c;编译后bar节点…

5分钟了解单元测试

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、什么是单元测试&#xff1f; 单元测试是指&#xff0c;对软件中的最小可测试单元在与程序其…

​海康威视 isecure center 综合安防管理平台任意文件上传漏洞

文章目录 前言声明一、漏洞描述二、影响版本三、漏洞复现四、修复方案 前言 海康威视是以视频为核心的智能物联网解决方案和大数据服务提供商,业务聚焦于综合安防、大数据服务和智慧业务。 海康威视其产品包括摄像机、多屏控制器、交通产品、传输产品、存储产品、门禁产品、消…

项目五 OpenStack镜像管理与制作

任务一 理解OpenStack镜像服务 1.1 •什么是镜像 • 镜像通常 是指一系列文件或一个磁盘驱动器的精确副本 。 • 虚拟机 所使用的虚拟磁盘&#xff0c; 实际上是 一种特殊格式的镜像文件 。 • 云 环境下尤其需要 镜像。 • 镜像 就是一个模板&#xff0c;类似于 VMware 的虚拟…

DDoS攻击增速惊人,谈谈防御DDoS攻击的几大有效方法

过去的十年里&#xff0c;DDoS攻击是计算机科学领域中最“头疼”的问题之一。Gcore发现&#xff0c;DDoS攻击增速惊人&#xff0c;2021年DDoS攻击峰值流量为300Gbps&#xff0c;2022年增至650 Gbps&#xff0c;2023 年Q3-Q4季度增至1600 Gbps (1.6 Tbps)。企业如果没有采取足够…

react钩子函数用法(useCallback、useMemo)

useMemo import { useMemo } from react; function MyComponent({ a, b }) { const memoizedValue useMemo(() > { // 进行一些昂贵的计算 return a b; }, [a, b]); // 当 a 或 b 发生变化时&#xff0c;memoizedValue 将被重新计算 return <div>{memoizedVa…

产品Web3D交互展示有什么优势?如何快速制作?

智能互联网时代&#xff0c;传统的图片、文字、视频等产品展示方式&#xff0c;因为缺少互动性&#xff0c;很难引起用户的兴趣&#xff0c;已经逐渐失去了宣传优势。 Web3D交互展示技术的出现&#xff0c;让众多品牌和企业找到了新的方向&#xff0c;线上产品展示不在枯燥无趣…

最小公倍数的求法

什么是最小公倍数&#xff1f; 最小公倍数是指两个或多个整数共有的最小正整数倍数。 如何求一组数据的最小公倍数&#xff08;Least Common Multiple&#xff0c;简称LCM&#xff09;&#xff1f; LCM 这组数据的公倍数 这组数据的最大公约数 (Greatest Common Divis…