任务描述:
有n(0<n<=50)个同学聚会,如果见面时,每个人都要跟其他人握手1次,请计算一共握手多少次?
解决思路:
为了计算在一次聚会上 n 个人相互之间握手的总次数,我们可以采用组合数学的方法。给定 n 个人,每两个人之间进行一次握手,问题可以转化为从 n 个人中选择 2 人的组合数问题。
对于 n 个人来说,握手的总次数可以通过组合数 C(n, 2) 计算得出,即从 n 个人中选择 2 人的方式总数。
代码示例:
package a4_2024_07;import java.util.Scanner;public class j240727_1 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("输入学生人数: ");int n = scanner.nextInt();if (n > 0 && n <= 50) {long handshakes = calculateHandshakes(n);System.out.println(handshakes);} else {System.out.println("输入的学生人数不在有效范围内,请确保 0 < n <= 50");}scanner.close();}private static long calculateHandshakes(int n) {return (long) n * (n - 1) / 2;}
}