C基础寒假练习(2)

一、输出3-100以内的完美数,(完美数:因子和(因子不包含自身)=数本身

#include <stdio.h>// 函数声明
int isPerfectNumber(int num);int main() 
{printf("3-100以内的完美数有:\n");for (int i = 3; i <= 100; i++){if (isPerfectNumber(i)) {printf("%d\n", i);}}return 0;
}// 判断是否为完美数的函数
int isPerfectNumber(int num) 
{int sum = 1; // 1是所有正整数的因子for (int i = 2; i * i <= num; i++) {if (num % i == 0) {if (i * i != num) {sum += i + num / i;}else {sum += i;}}}return sum == num && num != 1;
}

以下是对代码的详细解释:
1. 函数声明:        
 

int isPerfectNumber(int num);

    这行代码声明了一个名为isPerfectNumber的函数,该函数接受一个整数参数并返回一个整数。
2. 主函数:        

int isPerfectNumber(int num) 
{int sum = 1; // 1是所有正整数的因子for (int i = 2; i * i <= num; i++) {if (num % i == 0) {if (i * i != num) {sum += i + num / i;}else {sum += i;}}}return sum == num && num != 1;
}

    这个函数用于判断一个数是否为完美数。具体步骤如下:
• 初始化sum为1,因为1是所有正整数的因子。
• 使用一个循环从2开始遍历到sqrt(num),检查每个数是否是num的因子。
• 如果i是num的因子,并且i*i不等于num,则将i和num/i都加到sum中。如果i*i等于num,则只加一次i。
• 最后,检查sum是否等于num且num不等于1。如果条件成立,则返回1(表示是完美数),否则返回0(表示不是完美数)。

教师版:

二、百钱买百鸡问题,一百元钱去买鸡,公鸡5元,母鸡3元,三只小鸡1元,问买一百只鸡,有多少种买法。

#include <stdio.h>int main()  
{int rooster, hen, chick;int count = 0; // 用于记录符合条件的组合数for (rooster = 0; rooster <= 20; rooster++) { // 公鸡最多只能买20只(5*20=100)for (hen = 0; hen <= 33; hen++) { // 母鸡最多只能买33只(3*33=99)chick = 100 - rooster - hen; // 小鸡的数量由总数100减去公鸡和母鸡的数量得到if (chick % 3 == 0 && (5 * rooster + 3 * hen + chick / 3) == 100) { // 检查是否符合条件printf("Rooster: %d, Hen: %d, Chick: %d\n", rooster, hen, chick);count++;}}}printf("Total combinations: %d\n", count);return 0;
}

代码解释:
1. 变量声明:
• rooster:表示公鸡的数量。
• hen:表示母鸡的数量。
• chick:表示小鸡的数量。
• count:用于记录符合条件的组合数。
2. 循环结构:
• 外层循环遍历公鸡的数量,从0到20(因为每只公鸡5元,所以最多只能买20只)。
• 内层循环遍历母鸡的数量,从0到33(因为每只母鸡3元,所以最多只能买33只)。
• 计算小鸡的数量为100 - rooster - hen。
3. 条件判断:
• 检查小鸡的数量是否是3的倍数(因为三只小鸡1元)。
• 检查总价是否等于100元。
4. 输出结果:
• 如果符合条件,打印当前组合并增加计数器。
• 最后输出符合条件的组合总数。
运行这段代码,你将得到所有符合条件的组合以及组合的总数。

教师版:

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

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

相关文章

有限元分析学习——Anasys Workbanch第一阶段笔记梳理

第一阶段笔记主要源自于哔哩哔哩《ANSYS-workbench 有限元分析应用基础教程》 张晔 主要内容导图&#xff1a; 笔记导航如下&#xff1a; Anasys Workbanch第一阶段笔记(1)基本信息与结果解读_有限元分析变形比例-CSDN博客 Anasys Workbanch第一阶段笔记(2)网格单元与应力奇…

html基本结构和常见元素

html5文档基本结构 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><title>文档标题</title> </head> <body>文档正文部分 </body> </html> html文档可分为文档头和文档体…

Cursor如何使用Google Gemini以及碰到的坑

Cursor如何使用Google Gemini以及碰到的坑 Cursor介绍下载安装Google Gemini介绍Google Gemini 官网申请Google Gemini API网址 配置Cursor使用Google Gemini打开Corsur设置 Cursor介绍 ‌Cursor是一款基于人工智能的代码编辑器&#xff0c;旨在帮助开发者更高效地编写代码。‌…

【云安全】云原生-K8S-简介

K8S简介 Kubernetes&#xff08;简称K8S&#xff09;是一种开源的容器编排平台&#xff0c;用于管理容器化应用的部署、扩展和运维。它由Google于2014年开源并交给CNCF&#xff08;Cloud Native Computing Foundation&#xff09;维护。K8S通过提供自动化、灵活的功能&#xf…

【C++】线程池实现

目录 一、线程池简介线程池的核心组件实现步骤 二、C11实现线程池源码 三、线程池源码解析1. 成员变量2. 构造函数2.1 线程初始化2.2 工作线程逻辑 3. 任务提交(enqueue方法)3.1 方法签名3.2 任务封装3.3 任务入队 4. 析构函数4.1 停机控制 5. 关键技术点解析5.1 完美转发实现5…

深入理解 C# 与.NET 框架

.NET学习资料 .NET学习资料 .NET学习资料 一、引言 在现代软件开发领域&#xff0c;C# 与.NET 框架是构建 Windows、Web、移动及云应用的强大工具。C# 作为一种面向对象的编程语言&#xff0c;而.NET 框架则是一个综合性的开发平台&#xff0c;它们紧密结合&#xff0c;为开…

雷电等基于VirtualBox的Android模拟器映射串口和测试CSerialPort串口功能

雷电等基于VirtualBox的Android模拟器映射串口和测试CSerialPort串口功能 1. 修改VirtualBox配置文件映射串口 模拟器配置文件vms/leidian0/leidian.vbox。 在UART标签下增加(修改完成后需要将leidian.vbox修改为只读) <Port slot"1" enabled"true"…

【Linux系统】SIGCHLD 信号(选学了解)

SIGCHLD 信号 使用wait和waitpid函数可以有效地清理僵尸进程。父进程可以选择阻塞等待&#xff0c;直到子进程结束&#xff1b;或者采用非阻塞的方式&#xff0c;通过轮询检查是否有子进程需要被回收。 然而&#xff0c;无论是选择阻塞等待还是非阻塞的轮询方式&#xff0c;父…

【R语言】获取数据

R语言自带2种数据存储格式&#xff1a;*.RData和*.rds。 这两者的区别是&#xff1a;前者既可以存储数据&#xff0c;也可以存储当前工作空间中的所有变量&#xff0c;属于非标准化存储&#xff1b;后者仅用于存储单个R对象&#xff0c;且存储时可以创建标准化档案&#xff0c…

Vim的基础命令

移动光标 H(左) J(上) K(下) L(右) $ 表示移动到光标所在行的行尾&#xff0c; ^ 表示移动到光标所在行的行首的第一个非空白字符。 0 表示移动到光标所在行的行首。 W 光标向前跳转一个单词 w光标向前跳转一个单词 B光标向后跳转一个单词 b光标向后跳转一个单词 G 移动光标到…

11. 9 构建生产级聊天对话记忆系统:从架构设计到性能优化的全链路指南

构建生产级聊天对话记忆系统:从架构设计到性能优化的全链路指南 关键词: 聊天对话记忆系统、多用户会话管理、LangChain生产部署、Redis记忆存储、高并发对话系统 一、服务级聊天记忆系统核心需求 多用户隔离:支持同时处理数千个独立对话持久化存储:对话历史不因服务重启丢…

Block Blaster Online:免费解谜游戏的乐趣

Block Blaster Online 是一款免费的在线解谜游戏&#xff0c;它将挑战你的思维和反应能力&#xff01;在这里&#xff0c;你可以匹配五彩缤纷的方块&#xff0c;创造出令人惊叹的组合&#xff0c;享受无尽的解谜乐趣。无需安装&#xff0c;点击即可开始&#xff0c;加入全球数百…

Guided Decoding (借助FSM,有限状态自动机)

VLLM对结构化输出的支持&#xff1a; vllm/docs/source/features/structured_outputs.md at main vllm-project/vllm GitHub VLLM对tool call的支持&#xff1a; vllm/docs/source/features/tool_calling.md at main vllm-project/vllm GitHub 以上指定输出格式&#xf…

IFeatureWorkspace.CreateFeatureClass(),报错对COM组件的调用返回了错误 HRESULT E_FAIL

1、问题描述&#xff1a;在AE开发中&#xff0c;新增一个空的shpfile文件的时候&#xff0c;报错&#xff0c;如下图&#xff1a; 2、原因分析&#xff1a;产生此问题的原因是未设置默认字段的默认参数&#xff0c;特别是未设置IGeometryDef 参数。 3、解决方案&#xff1a;在…

算法题(48):反转链表

审题&#xff1a; 需要我们将链表反转并返回头结点地址 思路&#xff1a; 一般在面试中&#xff0c;涉及链表的题会主要考察链表的指向改变&#xff0c;所以一般不会允许我们改变节点val值。 这里是单向链表&#xff0c;如果要把指向反过来则需要同时知道前中后三个节点&#x…

内存的介绍

1、程序运行为什么需要内存 1.1、计算机程序运行的目的 (1)程序的目的是为了去运行&#xff0c;程序运行是为了得到一定的结果。 (2)计算机程序 代码 数据。计算机程序运行完得到一个结果&#xff0c;就是说 代码 数据 (经过运行后) 结果。 (3)从宏观上来理解&#xff…

【NLP百面百过】大模型算法面试高频面题(全面整理 ʘ‿ʘ)

目录 一、大模型面试指南 重点面题精讲 【LLM面题精讲 - RAG系统面】 查看答案 【LLM面题精讲 - 实体识别面】 查看答案 【LLM面题精讲 - 文本分类面】 查看答案 【LLM面题精讲 - 分布式训练面】 查看答案 【LLM面题精讲 - 大模型微调面】 查看答案 【LLM面题精讲 - 大…

Java 大视界 -- Java 大数据在智能医疗影像诊断中的应用(72)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也期待你毫无保留地分享独特见解,愿我们于此携手成长,共赴新程!💖 一、…

基于 docker 的mysql 5.7 主主集群搭建

创建挂载目录和配置文件 主节点1 mkdir -p /mysql_master_1/mysql/log mkdir -p /mysql_master_1/mysql/data mkdir -p /mysql_master_1/mysql/conf vim /mysql_master_1/mysql/conf/my.cnf[mysqld] datadir/var/lib/mysql #MySQL 数据库文件存放路径 server_id 1 #指定数据…

list容器(详解)

list的介绍及使用&#xff08;了解&#xff0c;后边细讲&#xff09; 1.1 list的介绍&#xff08;双向循环链表&#xff09; https://cplusplus.com/reference/list/list/?kwlist&#xff08;list文档介绍&#xff09; 1. list是可以在常数范围内在任意位置进行插入和删除的序…