握手问题 第十五届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组

news/2025/3/28 11:06:21/

握手问题

题目来源

第十五届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组

原题链接

蓝桥杯 握手问题

问题描述

问题分析

算法思路分析:

  1. 问题描述

    • 总共有 50 人参加会议,每个人需要与其他 49 人握手一次。
    • 但有 7 个人彼此之间没有握手(这 7 人之间没有握手,但他们与其他 43 人握手)。
    • 需要计算实际发生的握手次数。
  2. 握手总数计算

    • 如果没有限制,50 人之间总的握手次数为组合数 C ( 50 , 2 ) = 50 × 49 2 = 1225 C(50, 2) = \frac{50 \times 49}{2} = 1225 C(50,2)=250×49=1225
    • 但由于 7 人之间没有握手,需要减去这 7 人之间本应发生的握手次数 C ( 7 , 2 ) = 7 × 6 2 = 21 C(7, 2) = \frac{7 \times 6}{2} = 21 C(7,2)=27×6=21
  3. 代码实现

    • 代码通过累加 1 到 49 的和来计算 50 人之间的总握手次数(因为 1 + 2 + ⋯ + 49 = 49 × 50 2 = 1225 1 + 2 + \dots + 49 = \frac{49 \times 50}{2} = 1225 1+2++49=249×50=1225)。
    • 然后减去 1 到 6 的和(因为 1 + 2 + ⋯ + 6 = 6 × 7 2 = 21 1 + 2 + \dots + 6 = \frac{6 \times 7}{2} = 21 1+2++6=26×7=21),表示减去 7 人之间未发生的握手次数。
    • 最终结果为 1225 − 21 = 1204 1225 - 21 = 1204 122521=1204

代码解释:

  1. 计算总握手次数

    • 使用循环 for (int i = 1; i < 50; i++) 累加 1 到 49 的和,得到 50 人之间的总握手次数 1225。
  2. 减去未发生的握手次数

    • 使用循环 for (int i = 1; i < 7; i++) 累加 1 到 6 的和,得到 7 人之间未发生的握手次数 21。
    • 从总握手次数中减去 21,得到实际握手次数 1204。
  3. 输出结果

    • 使用 printf("%d", res); 输出最终的握手次数。

总结:

通过累加和减去的方式,高效计算实际发生的握手次数。


完整代码

#include <iostream>
using namespace std;int main() {int res = 0;  // 定义结果变量 res,用于存储握手总次数// 计算 50 人之间的总握手次数// 1 + 2 + 3 + ... + 49 = 1225for (int i = 1; i < 50; i++) {res += i;}// 减去 7 人之间未发生的握手次数// 1 + 2 + 3 + ... + 6 = 21for (int i = 1; i < 7; i++) {res -= i;}// 输出最终的握手次数printf("%d", res);return 0;
}

http://www.ppmy.cn/news/1580823.html

相关文章

随身路由新标杆?格行便携式WiFi信号强度与多场景覆盖测试!随身wifi哪个品牌网速快?随身wifi推荐第一名!

近期&#xff0c;物联网行业头部品牌格行随身WiFi凭借其三网切换、超长续航、千兆流量等核心优势&#xff0c;迅速成为市场热门选择&#xff0c;还被誉为行业“海底捞”。作为一名专业评测博主&#xff0c;我亲自体验了这款产品&#xff0c;并在此分享我的真实感受。 一&#x…

【C++】 —— 笔试刷题day_6

刷题day_6&#xff0c;继续加油哇&#xff01; 今天这三道题全是高精度算法 一、大数加法 题目链接&#xff1a;大数加法 题目解析与解题思路 OK&#xff0c;这道题题目描述很简单&#xff0c;就是给我们两个字符串形式的数字&#xff0c;让我们计算这两个数字的和 看题目我…

Apache HBase平衡器架构

Apache HBase平衡器架构 推荐超级课程: 本地离线DeepSeek AI方案部署实战教程【完全版】Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战目录 Apache HBase平衡器架构**介绍**Apache HBase背景HBase术语**HBase架构**Apache HBase平衡器目标Apache HBa…

湖仓一体:数据湖与数据仓库的融合模式解析

在现代数据管理和分析领域&#xff0c;随着数据量的不断增长和应用场景的多样化&#xff0c;企业需要处理的不同类型的数据越来越复杂。数据湖和数据仓库作为两种常见的存储和分析技术&#xff0c;扮演着重要的角色。然而&#xff0c;随着对数据需求的多样性和灵活性的要求&…

UI设计中的加载动画:优化用户体验的细节

hello宝子们...我们是艾斯视觉擅长ui设计和前端数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 在数字产品泛滥的今天&#xff0c;用户对体验的要求早已超越功能本身。一个看似简单的加载动画&…

sqli-labs学习笔记

判断注入类型 &#xff08;1&#xff09;首先判断是否存在sql注入点 对id1的参数修改为id1,来判断是否存在sql注入点。因为通过加入&#xff0c;使后台的sql语句中单引号个数不匹配来导致sql语句报错。 如果不报错的话&#xff0c;也不一定是不存在sql注入点&#xff0c;也有可…

HTML5扫雷游戏开发实战

HTML5扫雷游戏开发实战 这里写目录标题 HTML5扫雷游戏开发实战项目介绍技术栈项目架构1. 游戏界面设计2. 核心类设计 核心功能实现1. 游戏初始化2. 地雷布置算法3. 数字计算逻辑4. 扫雷功能实现 性能优化1. DOM操作优化2. 算法优化 项目亮点技术难点突破1. 首次点击保护2. 连锁…

Windows主机、虚拟机Ubuntu、开发板,三者之间文件互传

以下内容源于日常学习的整理&#xff0c;欢迎交流。 下图是Windows主机、虚拟机Ubuntu、开发者三者之间文件互传的方式示意图&#xff1a; 注意&#xff0c;下面谈及的所有方式&#xff0c;都要求两者的IP地址处于同一网段&#xff0c;涉及到的软件资源见felm。 一、Windows主…