蓝桥每日打卡
#蓝桥#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();
}
}