【时时三省】(C语言基础)简单的算法举例

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省

判定2000—2500年中的每一年是否为闰年,并将结果输出。

本先分析闰年的条件:

(1)能被4整除,但不能被100整除的年份都是闰年,如1996年、2008年、2012年s2048年是闰年;

(2)能被400整除的年份是闰年,如1600年、2000年是闰年。

不符合这两个条件的年份不是闰年。例如2009年、2100年不是闰年。

设year为被检测的年份。算法可表示如下:

S1:2000→year

S2:若year不能被4整除,则输出year的值和“不是闰年”。然后转到S6,检查下一个年份

S3:若year能被4整除,不能被100整除,则输出year的值和“是闰年”。然后转到S6

S4 :若year能被400整除,输出year的值和“是闰年”,然后转到S6

S5:输出year的值和“不是闰年”

S6:year+1=year

S7:当year<=2500时,转S2继续执行,否则算法停止。

在这个算法中,采取了多次判断。先判断year能否被4整除,如不能,则year必然不是闰年。如year能被4整除,并不能马上决定它是否闰年,还要检查它能否被100整除。如不能被100整除,则肯定是闰年(例如2008年)。如能被100整除,还不能判断它是否闰年,还要检查它能否被400整除,如果能被400整除,则是闰年;否则不是闰年。

在这个算法中,每做一步,都分别分离出一些范围(已能判定为闰年或非闰年),逐步缩小范围,使被判断的范围愈来愈小,直至执行S5时,只可能是非闰年。

考虑算法时,应当仔细分析所需判断的条件,如何一整除,又能但不能被100步一步缩小检查判断的范围。对有的问题,判断的先后次整除被400整除序是无所谓的;而有的问题,判断条件的先后次序是不能闰年闰年任意颠倒的,读者可根据具体问题决定其逻辑。

给出一个大于或等于3的正整数,判断它是不是一个素数。

解题思路:所谓素数( prime ),是指除了1和该数本身之外,不能被其他任何整数整除的数。例如,13是素数,因为它不能被2,3,4,…,12整除。

判断一个数n ( n > 3 )是否为素数的方法是很简单的:将n作为被除数,将2 ~ ( n-1 )的计算各个整数先后作为除数,如果都不能被整除,则n为素数。

算法可以表示如下:

S1:输入n的值

S2 : i = 2 ( i作为除数)

S3 : n被i除,得余数r

S4:如果r = 0,表示n能被i整除,则输出n“不是素数”,算法结束;否则执行S5

S5 : i +1→i

S6:如果i<=n-1,返回S3;否则输出n的值以及“是素数”,然后结束

实际上,n不必被2 ~ ( n-1 )的整数除,只须被2 ~ n / 2的整数除即可,甚至只须被2 ~法n的整数除即可。例如,判断13是否为素数,只须将13被2和3除即可,如都除不尽,n必图为素数。

S6步骤可改为

S6:如果i<=√n,返回S3;否则算法结束

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

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

相关文章

基于单片机的智能奶茶机(论文+源码+图纸)

1总体架构设计 本课题为基于单片机的智能奶茶机设计&#xff0c;其系统架构上设计如图2.1所示&#xff0c;整个系统包括了DS18B20温度传感器、继电器模块、LCD液晶、蜂鸣器、按键、STC89C52单片机等器件&#xff0c;在功能上用户可以通过按键键控制选择甜度和添加物以及设置温度…

在线网校教育软件开发助力互联网时代教育发展

互联网时代&#xff0c;在线教育已成为推动教育事业发展的重要力量。开发优质的在线网校教育软件&#xff0c;能够有效整合资源、提升效率、促进公平&#xff0c;为教育发展注入新活力。以下是关键点&#xff1a; 一、 在线网校教育软件的优势 打破时空限制&#xff1a; 学生…

Air724 DTU数据上报json到v1/gateway/telemetry

Air724 DTU数据上报json到v1/gateway/telemetry 任务模板&#xff1a; functionsys.wait(10000)local taskname"userTask"log.info(taskname,"start")local nid 1local netmsg "UART_DATA_TO_NET"..nidwhile true dolocal t{}t.params {} -- …

基于微信小程序的场地预约设计与实现

第3章 系统设计 3.1系统设计目标 本系统的实现可以帮助体育馆场地信息的管理。帮助管理员对注册用户管理以及用户预约管理。同时可以帮助用户进行场地预约。本系统可以实现用户足不出户预约到需要的场地&#xff0c;为用户提供场地信息了解的平台。 3.2系统功能结构图 本系统的…

Kettle开发Jsoup组件进行网页爬取

1. 概述 在当今数据驱动的商业环境中&#xff0c;企业需要从各种来源收集和分析数据以支持决策。网页爬取作为一种数据收集手段&#xff0c;能够从网页中提取有价值的信息。Kettle作为一种强大的ETL工具&#xff0c;结合Jsoup库&#xff0c;可以实现高效、灵活的网页爬取功能。…

C++ Primer 跳转语句

欢迎阅读我的 【CPrimer】专栏 专栏简介&#xff1a;本专栏主要面向C初学者&#xff0c;解释C的一些基本概念和基础语言特性&#xff0c;涉及C标准库的用法&#xff0c;面向对象特性&#xff0c;泛型特性高级用法。通过使用标准库中定义的抽象设施&#xff0c;使你更加适应高级…

tomcat html乱码

web tomcat html中文乱码 将html文件改成jsp <% page language"java" contentType"text/html; charsetUTF-8" pageEncoding"UTF-8"%>添加 <meta charset"UTF-8">

[c语言日寄]在不完全递增序中查找特定要素

【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋&#xff1a;这是一个专注于C语言刷题的专栏&#xff0c;精选题目&#xff0c;搭配详细题解、拓展算法。从基础语法到复杂算法&#xff0c;题目涉及的知识点全面覆盖&#xff0c;助力你系统提升。无论你是初学者&#xff0c;还是…

【第1章:深度学习概览——1.2 深度学习与机器学习、传统人工智能的区别与联系】

在科技飞速发展的时代,AI 技术如同一颗璀璨的明星,照亮了我们生活的方方面面。今天,让我们一起深入探寻 AI 技术的演进历程,看看它是如何从最初的简单规则系统,一步步发展成为如今强大的智能技术。 一、开篇故事:三杯咖啡看懂三代 AI 想象一下,你经营着一家充满温馨氛…

小结:OSPF的网络类型,LSA

OSPF&#xff08;Open Shortest Path First&#xff09;是一个基于链路状态的内部网关协议&#xff08;IGP&#xff09;。以下是对OSPF网络类型、LSA类型、序列号与Age作用&#xff0c;以及相关配置指令的详细讲解。 一、OSPF的网络类型 OSPF支持多种网络类型&#xff0c;不同…

代码随想录-训练营-day26

452. 用最少数量的箭引爆气球 - 力扣&#xff08;LeetCode&#xff09; 这题是一个区间题&#xff0c;不过要求我们求最小的弓箭数&#xff0c;显然我们可以先进行排序&#xff0c;然后挨个比较气球的区间&#xff0c;如果两个气球的区间没有交集则弓箭数加一&#xff0c;如果有…

机器学习·决策树

前言 决策树是分类与回归问题中常用的方法之一。其实不仅是机器学习领域&#xff0c;在每天的日常决策中&#xff0c;我们都在使用决策树。流程图实际上就是决策树的可视化表示。 一、基本概念 决策树原理 通过一系列 逻辑规则&#xff08;特征分割条件&#xff09; 构建树形结…

Linux下载安装2

安装VMWare虚拟机 VMware是一个老牌的虚拟化软件。虚拟机指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整。 下载CentOS 进入Centos官网找要下载的版本https://vault.centos.org/ …

Excel中不用复杂公式根据指定X列的数值N复制整行数据N行简单方法

Excel中不用复杂公式根据指定X列的数值N复制整行数据N行简单方法 1、在“数据表”sheet1中对指定X列&#xff08;假设X列的数字从X2开始到Xn结束&#xff09;求和&#xff0c;和为Y。 2、在“数据表”sheet1数据列之外新建一列Z&#xff0c;Z1输入表头“匹配数据列”&#xff…

DeepSeek、Kimi、文心一言、通义千问:AI 大语言模型的对比分析

在人工智能领域&#xff0c;DeepSeek、Kimi、文心一言和通义千问作为国内领先的 AI 大语言模型&#xff0c;各自展现出了独特的特点和优势。本文将从技术基础、应用场景、用户体验和价格与性价比等方面对这四个模型进行对比分析&#xff0c;帮助您更好地了解它们的特点和优势。…

数据库数据恢复—MongoDB丢失_mdb_catalog.wt文件导致报错的数据恢复案例

MongoDB数据库存储模式为文档数据存储库&#xff0c;存储方式是将文档存储在集合之中。 MongoDB数据库是开源数据库&#xff0c;同时提供具有附加功能的商业版本。 MongoDB中的数据是以键值对(key-value pairs)的形式显示的。在模式设计上&#xff0c;数据库受到的约束更少。这…

Flink在指定时间窗口内统计均值,超过阈值后报警

1、需求 统计物联网设备收集上来的温湿度数据&#xff0c;如果5分钟内的均值超过阈值(30摄氏度)则发出告警消息&#xff0c;要求时间窗口和阈值可在管理后台随时修改&#xff0c;实时生效(完成当前窗口后下一个窗口使用最新配置)。 物联网设备的数据从kafka中读取&#xff0c…

Flutter Gradle 命令式插件正式移除,你迁移旧版 Gradle 配置了吗?

在 Flutter 3.29 版本里官方正式移除了 Flutter Gradle Apply 插件&#xff0c;其实该插件自 3.19 起已被弃用&#xff0c;同时 Flutter 团队后续也打算把 Flutter Gradle 从 Groovy 转换为 Kotlin&#xff0c;并将其迁移到使用 AGP&#xff08;Android Gradle Plugin&#xff…

15.Python网络编程:进程池、进程间通信、多线程、进程和线程区别、网络通信、端口、IP地址、socket、UDP、TCP、http

1. 进程池&#xff08;Process Pool&#xff09; 进程池是通过将多个进程放入池中管理来避免频繁地创建和销毁进程&#xff0c;提高效率。Python 提供了 multiprocessing.Pool 类来实现进程池&#xff0c;它可以用于并行计算任务。 示例&#xff1a;使用进程池 from multipr…

Vue 中报错 TypeError: crypto$2.getRandomValues is not a function

问题 在新建的项目中&#xff0c;使用的是 npm init vue 创建项目后&#xff0c;执行命令 npm i &#xff0c;然后去 npm run dev 这个时候报错 TypeError: crypto$2.getRandomValues is not a function 起初是以为搞错了&#xff0c;然后再删掉 node_modules 和 package-lo…