蓝桥杯省赛真题C++B组2024-握手问题

一、题目

【问题描述】

小蓝组织了一场算法交流会议,总共有50人参加了本次会议。在会议上,大家进行了握手交流。按照惯例他们每个人都要与除自己以外的其他所有人进,行一次握手(且仅有一次)。但有7个人,这7人彼此之间没有进行握手(但,这7人与除这7人以外的所有人进行了握手)。请问这些人之间一共进行了多,少次握手?

注意 A 和 B 握手的同时也意味着 B 和 A 握手了,所以算作是一次握手。

【答案提交】

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

二、思路

方法一:

对于这种题,我一般是来找规律,我们从最简单的开始,有2个人的话,我们需要握手1次,3个人我们需要握手3次,四个人需要握手6次,5个人需要握手10次,6个人需要15次

|----|--------------|
| 人数 | 握手次数 |
| 2 | 1 |
| 3 | 3=2+1 |
| 4 | 6=3+2+1 |
| 5 | 10=4+3+2+1 |
| 6 | 15=5+4+3+2+1 |

我们不难找到一些规律,握手次数是 人数-1 开始向下逐个相加到1,3个人就是3-1向下开始相加(2+1)

但是题中说7个人是不相互握手的,我们假设3个人不握手,看上面的表,3个人将不握手3次(2+1),7个人将不握手6+5+4+3+2+1=21次

50个人握手49+48+47+...+2+1=1225次

又7个人不握手,1225-7=1204次

方法二:(代码)

三、代码

四、反思

相关推荐
wen__xvn4 分钟前
九日集训第六天
数据结构·算法·leetcode
梦境虽美,却不长2 小时前
C++ 学习 多线程 2025年6月17日18:41:30
c++·学习·线程·异步
eyexin20183 小时前
大模型量化与剪枝
算法·机器学习·剪枝
一只理智毅3 小时前
copy-and-swap语义
c++
芒果快进我嘴里3 小时前
C++打印乘法口诀表
开发语言·c++
普通网友3 小时前
C# 中委托和事件的深度剖析与应用场景
java·算法·c#
_w_z_j_3 小时前
C++----剖析stack、queue
开发语言·c++
安全系统学习3 小时前
网络安全之任意文件读取利用
算法·安全·web安全·网络安全·哈希算法
电院工程师3 小时前
2.4 Python基础概念:通过一个文字冒险游戏学习编程
开发语言·python·学习·算法·游戏·游戏程序
没故事的燕同学4 小时前
[GESP202306 三级] 密码合规
算法