11.07学习
一、三中代码解决鸡兔同笼问题
1.直接解方程
#include <stdio.h>
int main() {
int heads, feet, chickens, rabbits;
printf("请输入总头数:");
scanf("%d", &heads);
printf("请输入总脚数:");
scanf("%d", &feet);
// 检查是否有解
if (feet % 2 != 0 || heads * 4 < feet || heads * 2 > feet) {
printf("无解\n");
} else {
rabbits = (feet - heads * 2) / 2; // 兔子数量
chickens = heads - rabbits; // 鸡的数量
printf("鸡的数量:%d\n", chickens);
printf("兔子的数量:%d\n", rabbits);
}
return 0;
}
2.循环穷举法
#include <stdio.h>
int main() {
int heads, feet, chickens, rabbits;
printf("请输入总头数:");
scanf("%d", &heads);
printf("请输入总脚数:");
scanf("%d", &feet);
for (chickens = 0; chickens <= heads; chickens++) {
rabbits = heads - chickens;
if (2 * chickens + 4 * rabbits == feet) {
printf("鸡的数量:%d\n", chickens);
printf("兔子的数量:%d\n", rabbits);
return 0;
}
}
printf("无解\n");
return 0;
}
3.函数封装解方程
#include <stdio.h>
// 函数声明
void solveChickenAndRabbit(int heads, int feet);
int main() {
int heads, feet;
printf("请输入总头数:");
scanf("%d", &heads);
printf("请输入总脚数:");
scanf("%d", &feet);
solveChickenAndRabbit(heads, feet);
return 0;
}
// 函数定义
void solveChickenAndRabbit(int heads, int feet) {
int rabbits, chickens;
// 检查是否有解
if (feet % 2 != 0 || heads * 4 < feet || heads * 2 > feet) {
printf("无解\n");
} else {
rabbits = (feet - heads * 2) / 2; // 兔子数量
chickens = heads - rabbits; // 鸡的数量
printf("鸡的数量:%d\n", chickens);
printf("兔子的数量:%d\n", rabbits);
}
}
二、韩信点兵
#include <stdio.h>
int main() {
int x;
// 假设兵数不超过3000,这是一个合理的上限
for (x = 0; x < 3000; x++) {
if (x % 5 == 1 && x % 6 == 5 && x % 7 == 4 && x % 11 == 10) {
printf("x = %d\n", x);
// 找到答案后可以退出循环
break;
}
}
return 0;
}
这段代码通过穷举法,检查每个数字是否满足题目中给出的条件,即按1到5报数余1,按1到6报数余5,按1到7报数余4,按1到11报数余10。一旦找到符合条件的数字,就打印出来并退出循环
三、无限循环
在C语言中,实现无限循环主要有以下几种方式:
1. while循环: 使用 while(1) 或者 while(条件) ,其中条件总是为真,从而形成无限循环。
while(1) {
// 循环体
}
2. for循环: 使用 for(;;) ,这是一个没有初始化、条件和迭代表达式的循环,因此会无限执行。
for(;;) {
// 循环体
}
3. goto语句: 使用 goto 语句跳转到循环的开始,但通常不推荐使用 goto ,因为它会使代码难以理解和维护。
loop:
// 循环体
goto loop;
4. 递归函数: 通过递归调用自身,可以实现无限循环,但需要注意栈溢出的问题。
void infinite_loop() {
// 循环体
infinite_loop();
}
5. 死循环检测: 在某些情况下,可能需要检测死循环,这可以通过设置一个理论上不可能达到的条件来实现。
while(0) {
// 循环体
}
6. 条件表达式: 使用条件表达式,使得循环条件总是为真。
while(true) {
// 循环体
}
7. 无限循环的退出: 在无限循环中,通常需要某种机制来退出循环,比如检测到特定条件后使用 break 语句。
while(1) {
if (some_condition) {
break;
}
// 循环体
}
8. 信号处理: 在多进程或多线程环境中,可以通过信号处理来退出无限循环。
9. 中断: 在嵌入式编程中,可以通过硬件中断来退出无限循环。
使用无限循环时,需要特别注意程序的健壮性和资源管理,确保程序能够在需要时安全退出循环。
相关文章:
11.07学习
一、三中代码解决鸡兔同笼问题 1.直接解方程 #include <stdio.h> int main() { int heads, feet, chickens, rabbits; printf("请输入总头数:"); scanf("%d", &heads); printf("请输入总脚数:"); scanf(…...
【JavaEE】常见锁策略、CAS
目录 常见的锁策略 乐观锁 vs 悲观锁 重量级锁 vs 轻量级锁 自锁锁和挂起等待锁 读写锁 可重入锁 vs 不可重入锁 公平锁 vs 非公平锁 CAS ABA问题 synchronized几个重要的机制 1、锁升级 2、锁消除 3、锁粗化 常见的锁策略 乐观锁 vs 悲观锁 乐观锁和悲观锁是锁的…...
Logstash 安装与部署(无坑版)
下载 版本对照关系:ElasticSearch 7.9.2 和 Logstash 7.9.2 ; 官方下载地址 选择ElasticSearch版本一致的Logstash版本 https://www.elastic.co/cn/downloads/logstash 下载链接:https://artifacts.elastic.co/downloads/logstash/logst…...
鸿蒙开发:ArkUI Toggle 组件
ArkUI提供了一套完整的UI开发工具集,帮助开发者高效完成页面的开发。它融合了语言、编译器、图形构建等关键的应用UI开发底座,为应用的UI开发提供了完整的基础设施,包括简洁的UI语法、丰富的UI功能以及实时界面预览工具等,可以支持…...
使用Matlab神经网络工具箱
综述 在大数据和人工智能时代,神经网络是一种最为常见的数据分析和拟合工具。本报告以常用分析软件Matlab为例,介绍其中神经网络工具箱使用方法。 Step 1: 打开matlab 安装matlab 2018以上版本后,双击图标打开。 Step 2: 打开神经网络拟合…...
【面试题】Hive 查询:如何查找用户连续三天登录的记录
1. 需求概述 在分析用户行为时,查询用户的连续登录数据是一个常见需求。例如,我们需要找出每个用户连续三天登录的记录。给定一个包含用户登录记录的表,我们需要对这些数据进行处理,提取出用户连续三天登录的日期。 2. 问题说明…...
高活跃社区 Doge 与零知识证明的强强联手,QED 重塑可扩展性
在 Web3 的广阔生态中,Doge 无疑是最具标志性和趣味性的项目之一。作为一种起源于网络文化的符号,Doge 从最初的互联网玩笑发展为如今备受全球关注的去中心化资产,依靠其独特的魅力和广泛的用户基础,构建了一个充满活力的社区。 …...
qt QAbstractTableModel详解
1、概述 QAbstractTableModel 是 Qt 框架中的一个类,用于在 Qt 应用程序中实现自定义的表格数据模型。它是 Qt 中的一个抽象基类,提供了创建和操作表格数据所需的接口。QAbstractTableModel 为模型提供了一个标准接口,这些模型将其数据表示为…...
掌握 Navicat 数据库结构设计 | 提升工作效率的秘诀
近期,我们介绍了 Navicat 17 的一系列的新特性,包括:兼容更多数据库、全新的模型设计、可视化 BI、智能数据分析、可视化查询解释、高质量数据字典、增强用户体验、扩展 MongoDB 功能、轻松固定查询结果、便捷 URI、支持更多平台等。今天&…...
Ollama AI 框架缺陷可能导致 DoS、模型盗窃和中毒
近日,东方联盟网络安全研究人员披露了 Ollama 人工智能 (AI) 框架中的六个安全漏洞,恶意行为者可能会利用这些漏洞执行各种操作,包括拒绝服务、模型中毒和模型盗窃。 知名网络安全专家、东方联盟创始人郭盛华表示:“总的来说&…...
vue 3:监听器
目录 1. 基本概念 2. 侦听数据源类型 1. 监听getter函数 2. 监听 ref 或 reactive 的引用 3. 多个来源组成的数组 4. 避免直接传递值!!! 3. 深层侦听器 4. 立即回调的侦听器 5. 一次性侦听器 6. watchEffect() 7. 暂停、恢复和停止…...
Java学习路线:Maven(四)Maven常用命令
在IDEA的Maven模块中,可以看到每个项目都有一个生命周期 这些生命周期实际上是Maven的一些插件,每个插件都有各自的功能,而双击这些插件就可以执行命令 这些命令的功能如下: clean:清除整个 target文件夹,…...
服务器数据恢复—分区结构被破坏的reiserfs文件系统数据恢复案例
服务器数据恢复环境: 一台服务器中有一组由4块SAS硬盘组建的RAID5阵列,上层安装linux操作系统统。分区结构:boot分区LVM卷swap分区(按照顺序),LVM卷中划分了一个reiserfs文件系统作为根分区。 服务器故障…...
lua入门教程:type函数
在Lua中,type 函数是一个内置函数,用于返回给定值的类型。Lua 支持多种数据类型,包括 nil(空值)、boolean(布尔值)、number(数字)、string(字符串)…...
Java图片转word
该方法可以控制一页是否只显示存放一张图片 第一步 <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.2.3</version></dependency><dependency><groupId>org.apache…...
立体视觉的核心技术:视差计算与图像校正详解
立体视觉的核心技术:视差计算与图像校正详解 在立体视觉中,通过双目相机(即左右两台相机)的不同视角捕获的图像,结合几何关系,我们可以推算出场景中物体的深度。本文将深入讲解如何基于视差(di…...
PaddleNLP的FAQ问答机器人
项目源码获取方式见文章末尾! 600多个深度学习项目资料,快来加入社群一起学习吧。 《------往期经典推荐------》 项目名称 1.【DDRNet模型创新实现人像分割】 2.【卫星图像道路检测DeepLabV3Plus模型】 3.【GAN模型实现二次元头像生成】 4.【CNN模型实…...
2024年12月中国多场国际学术会议,EI检索录用!
2024年12月,多场国际学术会议将在中国多地召开,涵盖AI、机器人、大数据、网络安全、传感制造、环境工程、物联网等领域,促进学术交流,录用论文将EI检索,诚邀国内外专家参会。 第三届人工智能、人机交互和机器人国际学…...
日语学习的难易程度
日语学习的难易程度是一个相对主观的问题,它受到多种因素的影响,包括个人的语言学习能力、学习方法、学习时间、学习资源的可获得性以及个人对日语文化的兴趣和投入程度等。以下是对日语学习难易程度的一些分析: 优点与易学之处 文字系统&am…...
java-web-web后端知识小结
spring框架三大核心: IOC--控制反转 DI---依赖注入 AOP--面向切面编程 web开发技术小结 1.过滤器,JWT令牌 2.三层架构 IOC, DI AOP, 全局异常处理, 事务管理 mybatis 3.数据操作与存储 mysql 阿里云OSS(云存储) 各个技术的归属: 1.过滤器, cookie,session--javaWeb 2.JWT, 阿里…...
嵌入式调试实战:常见错误与高效排查方法
1. 程序员调试中的那些"荒唐"错误 作为一名从业多年的嵌入式工程师,我深知调试过程中的酸甜苦辣。那些看似简单的问题往往耗费我们最多时间,而最终解决方案却常常让人哭笑不得。今天就来分享几个真实的调试故事,希望能给同行们带来…...
Linux内核交互图解析与实战应用
1. Linux内核全景图:一图胜千言的深度解析作为一名在嵌入式领域摸爬滚打十年的老手,我深知Linux内核的学习曲线有多陡峭。记得第一次看内核源码时,面对数百万行代码和错综复杂的子系统交互,那种无力感至今难忘。直到后来遇到这张L…...
实战踩坑:antv G6与vite集成时的兼容性难题与解决方案
1. 当antv G6遇上vite:开发环境与生产环境的"薛定谔式报错" 最近接手一个数据可视化项目,需要用到antv G6这个流程图工具库。开发阶段一切顺利,页面渲染流畅得像德芙巧克力。但当我用vite打包准备上线时,控制台突然抛出…...
【黑金云课堂笔记】第一~二期FPGA知识点总结
知识卡片一:【FPGA 基础篇】开启硬件编程之门FPGA 的本质: FPGA(现场可编程门阵列)并非在运行软件程序,而是在构建电路本身。用户可以通过 Verilog/VHDL 等硬件描述语言,在芯片出厂后随时重新配置其内部逻辑…...
别再折腾LangChain了!用Ollama + DeepSeek R1在WSL2上5分钟搞定本地知识库问答
5分钟极简方案:用OllamaDeepSeek R1在WSL2搭建高效本地知识库 当开发者首次接触本地知识库系统时,往往会被LangChain等框架的复杂性劝退。本文将介绍一种绕过传统复杂流程的极简方案,只需5分钟即可在Windows 11的WSL2环境中搭建可用的问答系统…...
告别烧脑报文!用ESP8266+51单片机零基础玩转OneNet MQTT(附报文生成工具)
从零到一:ESP8266与51单片机轻松对接OneNet MQTT全指南 当你第一次听说MQTT协议时,是否被那些晦涩的十六进制报文吓退?作为物联网领域最流行的轻量级通信协议,MQTT本应让设备间的对话变得简单,但传统教程中复杂的报文…...
解锁Unity游戏插件开发:从概念到实战的MelonLoader全攻略
解锁Unity游戏插件开发:从概念到实战的MelonLoader全攻略 【免费下载链接】MelonLoader The Worlds First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono 项目地址: https://gitcode.com/gh_mirrors/me/MelonLoader 一、认知篇…...
如何快速配置跨平台鼠标连点器:终极效率提升指南
如何快速配置跨平台鼠标连点器:终极效率提升指南 【免费下载链接】MouseClick 🖱️ MouseClick 🖱️ 是一款功能强大的鼠标连点器和管理工具,采用 QT Widget 开发 ,具备跨平台兼容性 。软件界面美观 ,操作直…...
OFA图像描述效果展示:COCO风格caption生成——简洁、准确、自然
OFA图像描述效果展示:COCO风格caption生成——简洁、准确、自然 1. 项目概述 今天要给大家展示一个特别实用的AI工具——基于OFA模型的图像描述生成系统。这个工具能够自动为任何图片生成简洁、准确、自然的英文描述,就像给图片配上了专业的文字说明。…...
如何快速掌握Subtitle Edit:新手也能上手的完整实战指南
如何快速掌握Subtitle Edit:新手也能上手的完整实战指南 【免费下载链接】subtitleedit the subtitle editor :) 项目地址: https://gitcode.com/gh_mirrors/su/subtitleedit 你是不是经常遇到下载的字幕与视频不同步?或者想要为自制视频添加专业…...
