蓝桥每日打卡

#蓝桥#JAVA#握手问题

问题描述

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

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

解决思路:

握手问题我们可以把它看成循环渐减相加,正如题上说的50人握手,那么就从49开始逐渐减小并将其相加(从1加到49),那么就会握1225次手。加到49的原因是第50个人只需和前49个人握手不包括自己。

但题上还有一句,有七个人彼此之间没有握手,那么我们就将上述问题继续拓展,七人未握手将其放到最后七人,从第1人开始逐个握手,直到倒数第8个人和最后7个人握完手后(倒数第8个人握了7次手),就结束握手。

由此,我们可以从上述描述中得出循环条件从49开始到7结束循环

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //在此输入您的代码...
        int res = 0;//握手总次数
        for(int i = 7;i <50;i++){//从7开始到49结束,包括49
          res += i;//总数= 总数 + 当前握手次数
        }
        System.out.println(res);
        scan.close();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值