2026/9/2 17:28:34

题解4(冰雹猜想、旗鼓相当的对手)

题解4(冰雹猜想、旗鼓相当的对手) 题解4冰雹猜想、旗鼓相当的对手冰雹猜想题解package Luogu; import java.util.Scanner; /** * author jinhong * date 2026/8/31 22:49 * description 冰雹猜想 */ public class Main { public static void main(String[] args) { Scanner scnew Scanner(System.in); int nsc.nextInt(); int []arrnew int[200];//定义一个很大长度的arr数组用来存放输入及计算好的数据 int length0;//length用来记录真实的数组个数 int numn;//用num保存输入的数字 //使用true死循环用break控制跳出循环 while (true){ arr[length]num;//将输入或计算好的数存入数组中 length;//每存放一个数数组中元素个数1 //1既不是质数也不是偶数。若输入1则直接跳出循环用break控制 if(num1){ break; } //如果上一个计算好的结果取余2后恒等于0即偶数则进行下一步运算numnum/2 if(num%20){ numnum/2; //若是奇数进行numnum*31运算 }else { numnum*31; } } //从数组的末尾向前遍历打印每一次运算的结果记得用空格隔开 for (int ilength-1;i0;i--){ System.out.print(arr[i] ); } } }旗鼓相当的对手题解import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc new Scanner(System.in); int Nsc.nextInt(); //定义二维数组存储N个同学[i][0]代表第i同学的语文成绩,[i][1]代表i同学的数学成绩, [i][2]代表英语成绩 int[][]scorenew int[N][3]; //向二维数组中输入成绩用for循环控制输入不同的人的数据 for (int i0;iN;i){ score[i][0]sc.nextInt();//语文 score[i][1]sc.nextInt();//数学 score[i][2]sc.nextInt();//英语 } //设置计数器初始值为0用来记录符合条件的人 int count0; //i代表第一位同学 for (int i0;iN;i){ //j代表下一位同学只往后配对防止重复统计 for(int ji1;jN;j){ //计算每科分数差取绝对值 int YuMath.abs(score[i][0]-score[j][0]);//语 int ShuMath.abs(score[i][1]-score[j][1]);//数 int YingMath.abs(score[i][2]-score[j][2]);//英 //计算i和j的总分数 int sum1score[i][0]score[i][1]score[i][2]; int sum2score[j][0]score[j][1]score[j][2]; //计算两者总分数的差值 int sumMath.abs(sum1-sum2); //如果同时满足所有条件count就1为旗鼓相当的对手 if(Yu5Shu5Ying5sum10){ count; } } } //打印输出结果 System.out.println(count); } }