首页 > 编程语言 >c++初识------for的循环变量的使用

c++初识------for的循环变量的使用

时间:2024-12-07 22:29:00浏览次数:6  
标签:约数 输出 变量 10 int c++ 初识 ------ 循环

上次,我们讲了for循环,今天我们讲循环变量。

废话不多说,直接进入正题。

for循环语句的循环变量不仅仅可以用来控制循环运行的次数,还可以参与各种运算。

举几个例子:

观察数列:2  4  6  8  10 ...,输出数列的前n项。

思路:

第1步:因为要输出前n项,所以考虑用for循环。

第2步:显然,循环应该执行n次,每次输出一个整数。

第3步:循环变量i和要输出的数的关系如下:

循环变量i取值

1

2

3

4

5

...

n

要输出的数

2

4

6

8

10

...

2×n

两者关系

2*1

2*2

2*3

2*4

2*5

...

2*n

容易发现要输出的数是循环变量i的2倍。

第4步:定义一个整数变量n。

第5步:读入变量n的值。

第6步:用for语句循环n次,每次输出一个相应的值:

   for(int i=1; i<=n; i++) cout<<2*i<<" ";

参考代码

程序

#include <bits/stdc++.h>

using namespace std;

int main()

{

    int n;   //定义变量n

    cin>>n;  //读入变量n的值

    for(int i=1; i<=n; i++)  //i从1开始,i<=n则继续循环,共循环n次

        cout<<2*i<<" ";  //每次输出第i项的数

    return 0;

}

观察数列:10 13 16 19 22 25 28 ...,输出数列的前n项。

思路:

第1步:因为要输出前n项,所以考虑用for循环。

第2步:显然,循环应该执行n次,每次输出一个整数。

第3步:观察循环变量i的值与要输出的数的关系

循环变量i取值

0

1

2

3

...

n-1

要输出的数

10

13

16

19

...

10+(n-1)*3

两者关系

10+0*3

10+1*3

10+2*3

10+3*3

...

10+(n-1)*3

容易发现,要输出的数 = 10 + i * 3。

程序

#include <bits/stdc++.h>

using namespace std;

int main()

{

    int n;  //定义变量n

    cin>>n; //读入变量n的值

    for(int i=0; i<n; i++) //循环变量i从0至n-1,共循环n次

        cout<<10+3*i<<" ";  //每次输出第i项的数

    return 0;

}

  如果一个整数的个位数字是8,那么称为“幸运数”。输出a至b范围内所有的“幸运数”。从小到大输出,空格分开。

思路:

第1步:定义两个整型变量a和b。

第2步:读入变量a和b的值。

第3步:对a至b范围内的数,逐一判断,如果个位数字是8,则输出。

第4步:用for循环语句,循环变量i从a到b。

第5步:在循环体内,判断i的个位数字是否等于8,如果是,则输出i。

参考程序

#include <bits/stdc++.h>

using namespace std;

int main()

{

    int a, b;    //定义变量a和b  

    cin>>a>>b;   //读入变量a和b的值

    for(int i=a; i<=b; i++) //循环变量i的值从a至b

    if(i%10 == 8) //如果i是幸运数

        cout<<i<<" ";  //输出i

    return 0;

}

小锦囊

上面的方法是把[a,b]范围内的每一个数都判断一下是否为“幸运数”。像这种把所有可能的情况都尝试一次的方法,称为“枚举法”。

约数,又称因数整数a除以整数b(b≠0) 除得的正好是整数而没有余数,我们就说a能被b整除,或b能整除a。a称为b的倍数,b称为a的约数。例如:6的约数有1,2,3,6。现在的任务是读入一个a,从小到大输出a的约数,空格分开。

思路:

第1步:定义变量a。

第2步:读入变量a的值。

第3步:因为a的约数的范围是[1,a],所以对[1,a]范围内的每一个整数都判断是否为a的约数。

第4步:用for循环语句实现,循环变量i从1枚举到a。

第5步:在循环体内判断i是否是a的约数,如果是,则输出i。

参考程序

#include <bits/stdc++.h>

using namespace std;

int main()

{

    int a; //定义变量a

    cin>>a; //读入变量a

    for(int i=1; i<=a; i++) //循环变量i从1至a

    if(a%i==0)          //如果i是a的约数

        cout<<i<<" ";   //输出i

    return 0;

}

小锦囊

本题也用到了“枚举法”,因为a的约数的范围只能在[1,a],所以对[1,a]范围内的每一个数都判断一次,肯定能得到正确的答案。 

有一张无穷宽的纸,纸的厚度一开始是1毫米,每对折一次纸的厚度会增加1倍。不断的对折纸,直到纸的厚度超过8844430毫米(珠穆朗玛峰的高度)。在这个过程中,你需要把每次纸的厚度输出,空格分开。

思路:

第1步:由于可能需要折纸多次,所以考虑用for循环语句。

第2步:定义变量h表示纸的当前厚度。

第3步:h赋值为1,表示一开始纸的厚度是1毫米。

第4步:如果h的值没有超过8844430则执行第5步,否则执行第7步。

第5步:输出此时的h,转第6步。

第6步:对折一次,改变h的值,让h = 2 * h,转第4步。

第7步:结束循环。

程序流程图

X1T~OZHTSG]%{AX0Q~{)G{B.png

参考程序

#include <bits/stdc++.h>

using namespace std;

int main()

{

    //h的初始值是1毫米,当h<=8844430时,执行循环体语句,然后h=h*2

    for(int h=1; h<=8844430; h=h*2)

        cout<<h<<" ";

    return 0;

}

运行结果

1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 524288 1048576 2097152 4194304 8388608

一群小鸟共有n只,由于每年被人类捕获,导致数量每年减少一半,多少年以后,小鸟数量就低于1000只?

思路:

第1步:考虑用for循环语句。

第2步:定义变量n表示当前还剩下n只小鸟。

第3步:读入n的值。

第4步:定义变量y,表示需要y年之后小鸟数量低于1000只。

第5步:初始化让y=0。

第6步:如果n的不少于1000,转第7步,否则执行第8步。

第7步:y加1,小鸟数量n的值减半,转第6步。

第8步:输出y。

第9步:结束程序。

程序流程图如下:

]FN$(8IF1X{ATG`%6I~8Q1W.png

参考程序

#include <bits/stdc++.h>

using namespace std;

int main()

{

    int n, y;

    cin>>n;

    for(y=0; n >= 1000; n=n/2 )

        y = y + 1;

    cout<<y;

    return 0;

}

今天就讲到这里,下次就会讲一些稍微难一点点的东西了,拜拜!

 

标签:约数,输出,变量,10,int,c++,初识,------,循环
From: https://blog.csdn.net/2401_86949778/article/details/144317995

相关文章

  • 构建 Home Assistant 自定义组件(第一部分):项目结构与基础
    构建HomeAssistant自定义组件(第一部分):项目结构与基础项目结构引言本系列博客文章将是一个创建HomeAssistant自定义组件的教程。我们将从一个基础组件开始,并在每篇文章中对其进行扩展。在教程结束时,你将拥有一个功能完备的组件,在集成质量量表上至少应获得银牌分数。......
  • 神经网络的定义,组成,工作原理及应用
    **神经网络(NeuralNetwork)**是一种受人类大脑启发的计算模型,是深度学习的核心构成。它模仿生物神经元之间的连接,能够通过大量数据的训练完成分类、回归、生成等任务。以下从概念、结构、工作原理和常见类型等方面详细解释神经网络。1.神经网络的定义神经网络是由多个**人工......
  • 一 Home Assistant开发架构
    架构在深入研究HomeAssistant架构之前,让我们先全面了解一下家庭自动化领域的整体情况。这样,我们就能展示HomeAssistant的不同部分是如何融入其中的。家庭控制负责收集信息和控制设备。家庭自动化根据用户配置触发命令。智能家居根据先前的行为触发命令。HomeAs......
  • Windows 操作系统中的身份验证机制非常多样化且高度集成,以确保系统和网络环境的安全性
    Windows操作系统中的身份验证机制非常多样化且高度集成,以确保系统和网络环境的安全性。主要的身份验证机制包括以下几种:1. Windows本地身份验证(LocalAuthentication)这种身份验证机制是在单台计算机中使用的,通常用于独立的个人计算机或没有域控制器的工作组环境中。用户名......
  • 第一章 逻辑代数基础
    第一章.逻辑代数基础1.1概述1.1.1数字技术的发展及其应用(1)电子管时代(2)晶体管时代(半导体技术,电流控制器件)(3)半导体集成电路2.电路设计方法(1)传统的设计方法:自下而上,人工组装(元器件多,电路可靠性差,设计周期长)(2)现代的设计方法:EDA技术,自上而下3.EDA技术硬件设计软件化(1)EDA......
  • 实验五
    实验一代码:1#pragmaonce23#include<iostream>4#include<string>56usingstd::cout;7usingstd::endl;8usingstd::string;910//发行/出版物类:Publisher(抽象类)11classPublisher{12public:13Publisher(constst......
  • Alpha阶段项目复审
    Alpha阶段项目复审一、评审成员评审人:林涛,杨森,林浩全,钟礼骏,李思危,许佳钒,黄博复审人:杨森二、评审结果小组的名字和链接优点 缺点,bug报告(至少140字)名次白蓝混子队完成基础的用户使用,基础的功能,商品信息导入,登录以及货物信息的编辑和修改,获取各个货物的信息,管理员账......
  • ASP.NET Core Web API中使用缓存加速响应
    https://www.bilibili.com/video/BV1kpzSYUEES不适用Redis方案,在响应报文中添加Cache-Control:no-cache配合ETag实现缓存加速核心思路,使用https://github.com/SimonCropp/Delta库,监视数据库变更,如果无变更,直接返回304状态码,跳过数据库业务查询,实现相应加速实现变更的原理,M......
  • 20222408 2024-2025-1 《网络与系统攻防技术》实验八实验报告
    1.实验内容1.1实验基本内容概述(1)编写含有表单的前端代码,启用Apache,可以访问对应网页。(2)在前端代码中添加javascript代码,进行验证和登录回显的操作,并对其进行注入攻击。(3)启动MySQL,并对其进行基础操作。(4)修改前端代码,编写PHP代码,使网页可以通过请求PHP文件,连接数据库,进行用户认......
  • 2024-2025-1 20241313 刘鸣宇 《计算机基础与程序设计》第十一周学习总结
    2024-2025-120241313刘鸣宇《计算机基础与程序设计》第十一周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)这个作业的目标<写上具......