【C语言】循环结构程序设计(第二部分 -- 习题讲解)
前言:昨天我们学习了C语言中循环结构程序设计,并分析了循环结构的特点和实现方法,有了初步编写循环程序的能力,那么今天我们通过一些例子来进一步掌握循环程序的编写和应用。
💖 博主CSDN主页:卫卫卫的个人主页 💞
👉 专栏分类:C程序设计谭浩强版本 👈
💯代码仓库:卫卫周大胖的学习日记💫
💪关注博主和博主一起学习!一起努力!
目录
- 斐波那契数列
- 判断素数
- 最大公约数和最小公倍数
- 统计字符个数
- 水仙花数
- 求"1000之内的完数"
斐波那契数列
例题1:求Fibonacci(斐波那契)数列的前40个数。这个数列有以下特点:第1,2两个数为1,1。从第3个数开始,该数是其前面两个数之和。即该数列为1,1,2,3,5,8,13…,用数学方式表示为:
代码思路:
方法一:用非递归的思路解决
int main()
{int num1 = 1;int num2 = 1;int i = 0;int tmp = 0;int sum = 0;for (i = 0; i < 40; i++){if (i < 3){tmp = 1;printf("%d ", tmp);//前两项是1所以直接输出即可sum = 2;}else{tmp = num1 + num2;//第三项开始后一项是前两项的和num1 = num2;//让后一项赋值给前一项num2 = tmp;//同理printf("%d ", tmp);sum += tmp;//求和}}printf("\n");printf("sum = %d\n", sum);return 0;
}
方法二:用递归
int Fibon1(int num)
{if (num == 1 || num == 2){return 1;}else{return Fibon1(num - 1) + Fibon1(num - 2);//用递归的方式}}int main()
{int n = 0;int ret = 0;scanf("%d", &n);ret = Fibon1(n);printf("ret=%d", ret);return 0;
}
运行结果:
判断素数
例题2:输入一个大于3的数,判定它是否为素数(prime)
代码分析:
#include <math.h>
int is_prime(int n)
{int i = sqrt(n);//一个数如果是素数可以写成两个数相乘的形式int flag = 1;//判断标志while (i > 1){if (n % i == 0)//如果被整除说明不是素数{int flag = 0;return 0;}i--;}if (flag == 1)//如果flag = 1说明他没有整除{return 1;}
}
int main()
{int num = 0;scanf("%d", &num);if (is_prime(num)){printf("该数:%d是素数\n", num);}else{printf("该数:%d不是素数\n", num);}return 0;
}
运行结果:
例题3:求100到200之间的素数
代码分析:
#include <math.h>
int is_prime(int n)
{int i = sqrt(n);//一个数如果是素数可以写成两个数相乘的形式int flag = 1;//判断标志while (i > 1){if (n % i == 0)//如果被整除说明不是素数{int flag = 0;return 0;}i--;}if (flag == 1)//如果flag = 1说明他没有整除{return 1;}
}
int main()
{int i = 0;for (i = 100; i <= 200; i++){if(is_prime(i))//判断是否是素数printf("%d ", i);//是素数则打印i的值}return 0;
}
运行结果:
最大公约数和最小公倍数
例题4:输入两个正整数m和n,求其最大公约数和最小公倍数
代码分析:
int main()
{int m = 0;int n = 0;scanf("%d %d", &m, &n);int min = m < n ? m : n;//找出其中的最小值;while (1){if (m % min == 0 && n % min == 0)//找到能同时能被它们俩整除的数//如果能被整除说明是他们的最大公约数{break;}min -= 2;}int j = 1;while (m * j % n != 0)//两个数的最小公倍数一定是它们俩个的倍数//因此找到其中一个数的倍数,看他的倍数的积是否可以整除另一个数{j++;}printf("最大公约数是: %d 最小公倍数是: %d", min, m * j);printf("\n");return 0;
}
运行结果:
统计字符个数
例题4:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
代码分析:
int main()
{char arr[100] = { 0 };char ch = 0;int i = 0;int Eng_letter = 0;//英文字符int space = 0;//空格int number = 0;//数字int others = 0;//其其它字符while ((ch = getchar()) != '\n')//输入字符{arr[i++] = ch;}int len = strlen(arr);for (i = 0; i < len; i++){if ((arr[i] >= 'a' && arr[i] <= 'z') || (arr[i] >= 'A' && arr[i] <= 'Z'))//判断是否是英文字符{Eng_letter++;//是的话自增加1}else if (arr[i] >= '0' && arr[i] <= '9')//判断数字{number++;}else if (arr[i] == ' ')//判断空格{space++;}elseothers++;//是否是其它的}printf("Eng_letter = %d number = %d space = %d others = %d", Eng_letter, number, space, others);return 0;
}
运行结果:
水仙花数
例题5:输出所有的"水仙花数",所谓水仙花数是指一个3位数,其各位数字的立方和等于该数本身。例如153是水仙花数,因为153 = 1 3 + 5 3 + 3 3 1^3 + 5 ^ 3 + 3^3 13+53+33。
代码分析:
int Narcissistic_number(int n)
{int sum = 0;int y = n;while (n != 0)//求出该数的 每一位数的3次方{int x = n % 10;//求出每一位数sum += x * x * x;n = n / 10;}if (sum == y)//判断是否等于它本身{return y;}elsereturn 0;
}
int main()
{int i = 0;int sum = 0;for (i = 100; i < 1000; i++){ if (Narcissistic_number(i)){printf("%d ", Narcissistic_number(i));}}return 0;
}
运行结果:
求"1000之内的完数"
例题6:一个数如果恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1,2,3,而6 = 1 + 2 + 3,因此6就是完数。编写程序找出1000以内的完数。
代码分析:
int if_factor(int n)
{int sum = 0;int i = 1;while (i < n){if (n % i == 0)//找出能被它整数的项,即找出因数{sum += i;}i++;}if (sum == n)//判断是否是完数{return sum;}elsereturn 0;
}
void factor(int n)//打印因数
{int i = 1;while (i < n){if (n % i == 0){printf("%d ", i);}i++;}
}
int main()
{int i = 0;for (i = 2; i < 10000; i++){if (if_factor(i)){printf("%d ", if_factor(i));//判断是否是完数printf("因数是:");factor(i);//打印出因数printf("\n");}}return 0;
}
运行结果:
结语:今天的内容就到这里吧,谢谢各位的观看,如果有讲的不好的地方也请各位多多指出,作者每一条评论都会读的,谢谢各位。
相关文章:
【C语言】循环结构程序设计(第二部分 -- 习题讲解)
前言:昨天我们学习了C语言中循环结构程序设计,并分析了循环结构的特点和实现方法,有了初步编写循环程序的能力,那么今天我们通过一些例子来进一步掌握循环程序的编写和应用。 💖 博主CSDN主页:卫卫卫的个人主页 💞 &am…...
UGUI交互组件Toggle
一.Toggle对象的构造 Toggle和Button类似,是交互组件的一种 如果所示,通过菜单创建了两个Toggle,Toggle2中更换了背景和标记资源 对象说明Toggle含有Toggle组件的对象Background开关背景Checkmark开关选中标记Label名称文本 二.Toggle组件属…...
亲,您的假期余额已经严重不足了......
引言 大家好,我是亿元程序员,一位有着8年游戏行业经验的主程。 转眼八天长假已经接近尾声了,今天来总结一下大家的假期,聊一聊假期关于学习的看法,并预估一下大家节后大家上班时的样子。 1.放假前一天 即将迎来八天…...
【软件测试】自动化测试selenium(一)
文章目录 一. 什么是自动化测试二. Selenium的介绍1. Selenium是什么2. Selenium的特点3. Selenium的工作原理4. SeleniumJava的环境搭建 一. 什么是自动化测试 自动化测试是指使用软件工具或脚本来执行测试任务的过程,以替代人工进行重复性、繁琐或耗时的测试活动…...
Nginx实现动静分离
一、概述 1、什么是动静分离 动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路。 动静分离简单的概…...
【算法题】309. 买卖股票的最佳时机含冷冻期
题目: 给定一个整数数组prices,其中第 prices[i] 表示第 i 天的股票价格 。 设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票): 卖出股票后,你无法在…...
1951-2011年长序列高时空分辨率月尺度温度和降水数据集
简介 长序列高时空分辨率月尺度温度和降水数据集,基于中国及周边国家共1153个气温站点和1202个降水站点数据,利用ANUSPLIN软件插值,重建了1951−2011年中国月值气温和降水量的高空间分辨率0.025(~2.5km)格点数据集&am…...
十天学完基础数据结构-第六天(树(Tree))
树的基本概念 树是一种层次性的数据结构,它由节点组成,这些节点按照层次关系相互连接。树具有以下基本概念: 根节点:树的顶部节点,没有父节点。 子节点:树中每个节点可以有零个或多个子节点。 叶节点&am…...
RobotFramework流程控制(最新版本)
文章目录 一 分支流程1. 关键字:Run Keyword If2. 关键字:IF/ELSE3. 嵌套IF/ELSE4. 关键字:Set Variable If 二 循环流程1. 普通FOR循环2. 嵌套FOR循环3. 退出循环4. 其它常用循环 一 分支流程 1. 关键字:Run Keyword If Run Key…...
win11 好用的 快捷方式 --chatGPT
gpt: Windows 11引入了许多新的功能和改进,同时也包括一些实用的快捷方式和功能。以下是一些Windows 11中的常用快捷方式: 1. **Win D**:最小化或还原所有打开的窗口,显示桌面。 2. **Win E**:打开文件资源管理器…...
在大数据相关技术中,HBase是个分布的、面向列的开源数据库,是一个适合于非结构化数据存储的数据库。
HDFS,适合运行在通用硬件上的分布式文件系统,是一个高度容错性的系统,适合部署在廉价的机器上。Hbase,是一个分布式的、面向列的开源数据库,适合于非结构化数据存储。MapReduce,一种编程模型,方…...
910数据结构(2020年真题)
算法设计题 问题1 现有两个单链表A和B,其中的元素递增有序,在不破坏原链表的情况下,请设计一个算法,求这两个链表的交集,并将结果存放在链表C中。 (1)描述算法的基本设计思想; (2)根据设计思想࿰…...
MyBatisPlus(八)范围查询
说明 范围查询,包括: 大于大于等于小于小于等于在范围内在范围外 大于:gt 代码 Testvoid gt() {LambdaQueryWrapper<User> wrapper new LambdaQueryWrapper<>();wrapper.gt(User::getAge, 20);List<User> users mapp…...
【day10.04】QT实现TCP服务器客户端搭建的代码
服务器: #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//实例化一个服务器server new QTcpServer(this);//此时,服务器已经成功进入…...
milvus 结合Thowee 文本转向量 ,新建表,存储,搜索,删除
1.向量数据库科普 【上集】向量数据库技术鉴赏 【下集】向量数据库技术鉴赏 milvus连接 from pymilvus import connections, FieldSchema, CollectionSchema, DataType, Collection, utility connections.connect(host124.****, port19530)2.milvus Thowee 文本转向量 使用 …...
GEO生信数据挖掘(三)芯片探针ID与基因名映射处理
检索到目标数据集后,开始数据挖掘,本文以阿尔兹海默症数据集GSE1297为例 目录 处理一个探针对应多个基因 1.删除该行 2.保留分割符号前面的第一个基因 处理多个探针对应一个基因 详细代码案例一删除法 详细代码案例二 多个基因名时保留第一个基因名…...
力扣 -- 96. 不同的二叉搜索树
解题步骤: 参考代码: class Solution { public:int numTrees(int n) {vector<int> dp(n1);//初始化dp[0]1;//填表for(int i1;i<n;i){for(int j1;j<i;j){//状态转移方程dp[i](dp[j-1]*dp[i-j]);}}//返回值return dp[n];} }; 你学会了吗&…...
经典算法-枚举法(百钱买百鸡问题)
题目: 条件:现有 100 元,一共要买公鸡、母鸡、小鸡三种鸡,已知公鸡 5 元一只,母鸡 3 元一只,1 元可以买三只小鸡。 要求:公鸡、母鸡、小鸡都要有,一共买 100 只鸡。有哪几种买法&am…...
Gurobi设置初始可行解
目录 1. 决策变量的Start属性直接设置变量的初始值 1.1 Start:MIP变量的起始值(初值)double类型,可更改 1.2 StartNodeLimit:限制了在完善一组输入部分变量的初始解时,MIP所探索的分支定界的节点的数量 …...
Zabbix配置监控文件系统可用空间小于30GB自动告警
一、创建监控项 二、配置监控项 #输入名称–>键值点击选择 #找到磁盘容量点击 注: 1、vfs 该键值用于检测磁盘剩余空间,zabbix 内置了非常多的键值可以选着使用 2、单位B不需要修改,后期图表中单位和G拼接起来就是GB 3、更新时间 10S…...
进程调度算法之先来先服务(FCFS),短作业优先(SJF)以及高响应比优先(HRRN)
1.先来先服务(FCFS) first come first service 1.算法思想 主要从“公平”的角度考虑(类似于我们生活中排队买东西的例子) 2.算法规则 按照作业/进程到达的先后顺序进行服务。 3.用于作业/进程调度 用于作业调度时,考虑的是哪个作业先…...
MyBatisPlus(九)模糊查询
说明 模糊查询,对应SQL语句中的 like 语句,模糊匹配“要查询的内容”。 like /*** 查询用户列表, 查询条件:姓名包含 "J"*/Testvoid like() {String name "J";LambdaQueryWrapper<User> wrapper ne…...
Spring 原理
它是一个全面的、企业应用开发一站式的解决方案,贯穿表现层、业务层、持久层。但是 Spring仍然可以和其他的框架无缝整合。 1 Spring 特点 轻量级控制反转面向切面容器框架集合 2 Spring 核心组件 3 Spring 常用模块 4 Spring 主要包 5 Spring 常用注解 bean…...
基于微信小程序的明星应援小程序设计与实现(源码+lw+部署文档+讲解等)
文章目录 前言系统主要功能:具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计…...
try catch 中的finally什么时候运行
try catch 中的finally什么时候运行 在Java、C#等编程语言中,try-catch-finally语句块用于处理异常。finally块的执行时机通常是在try块中的代码执行完毕之后,无论try块中的代码是否引发了异常。 具体执行顺序如下: 1、try块中的代码首先被…...
力扣 -- 322. 零钱兑换(完全背包问题)
参考代码: 未优化代码: class Solution { public:int coinChange(vector<int>& coins, int amount) {int n coins.size();const int INF 0x3f3f3f3f;//多开一行,多开一列vector<vector<int>> dp(n 1, vector<i…...
[python]pip安装requiements.txt跳过错误包继续安装
在linux上可以用下面操作进行 while read requirement; do sudo pip install $requirement; done < requirement.txt 在windows上写个脚本 import sys from pip._internal import main as pip_maindef install(package):pip_main([--default-timeout1000,install,-U, pac…...
1.5 计算机网络的类别
思维导图: 1.5.1 计算机网络的定义 我的笔记: #### 精确定义: 计算机网络没有统一的精确定义,但一种较为接近的定义是:计算机网络主要由一些通用的、可编程的硬件互连而成,这些硬件并非专门用来实现某一特…...
Go 基本数据类型和 string 类型介绍
Go 基础之基本数据类型 文章目录 Go 基础之基本数据类型一、整型1.1 平台无关整型1.1.1 基本概念1.1.2 分类有符号整型(int8~int64)无符号整型(uint8~uint64) 1.2 平台相关整型1.2.1 基本概念1.2.2 注意点1.2.3 获取三个类型在目标…...
Python中print()打印如何不换行?
文章目录 Python中print()打印如何不换行python2.xpython3.x print()函数语法objects基本语法sep基本语法end基本语法 Python中print()打印如何不换行 print() 函数用于打印输出,是python中最常见的一个内置函数。 如何在Python中打印两个或多个变量、语句时而不进…...
wordpress电脑主题/互联网媒体推广
在MFC中学习过程中遇到了一个问题,折腾了半天,才解决。记录一下过程,以便后续查询。说一下场景,使用mfc进行,采用双缓存绘图的方式,进行一组连续图片的连续显示,效果就是以一个picture control为…...
沧州网站建设价格/北京网站制作
人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析&#x…...
查看网站建设时间/怎么制作网站教程手机
原因 今天下午在抓取一个网页时,发现的网页字体反爬,这种情况一句话总结:即网页文本里的数字与网页上显示的字体不一致。为什么会出现这样的情况呢?原因是开发者在网页文本里引入了改变字体的文件。 然后可以看到,这…...
深圳做网站推广公司哪家好/青岛网络推广公司排名
创建表之create命令(包含主键约束,外键约束) create table 表名( 字段名 数据类型 主键约束 id number(15) primary key,字段名 数据类型 外键约束 引入下表的字段为外键 外键字段 非空设置customer n…...
室内装修工人培训学校/天津关键词优化专家
每个shader里面有很多的subshader,如果所以的subshader都不执行的话就,就执行fallback。每个subshader都可以设置一个LOD,整个shader也有一个LOD。 系统就去找第一个LOD小于等于shader的LOD的subshader执行,其他的subshader就不会…...
网站地图在线生成器/长春网络推广优化
1、利用https://bootstrapmade.com https://colorlib.com/wp/templateshttps://colorlib.com/wp/free-bootstrap-admin-dashboard-templates 现有模板做网站,不必全部自己搭建,想要替换图标可以在【iconfont】网站找。 下载模板 index.html复制到templa…...