广联达8月31笔试
第一题:粒子特性,
第一行:一个正整数n,表示粒子数量 5
第二行:发射的粒子编号 5 4 3 2 1
第三行:到达终点的粒子编号 1 5 3 4 2
输出 :2
import java.util.Scanner; public class Main01 { public static void main(String[] args) { Scanner in = new Scanner(System.in); int num = in.nextInt(); int []send=new int[num]; int []receive=new int[num]; int result=0; for (int i = 0; i < num; i++) { send[i]=in.nextInt(); } for (int i = 0; i < num; i++) { receive[i]=in.nextInt(); } //判断所有的粒子,去判断每一个接受的粒子有没有变异 for (int i = 0; i < num; i++) { boolean flag = false; int sendIndex=-1; for (int j = 0; j < num; j++) { if(send[j] == receive[i]){ //获取发射时的顺序,就是当前判断的粒子是第几个发射的,sendIndex是数组下标 sendIndex = j; } } //本来应该在我之前的粒子却跑到了我的后面 // sendIndex是发射的时候的下标, //这个for循环是判断发射在我之前的粒子 for (int j = 0; j < sendIndex; j++) { //发射顺序在之前的编号 //这个是我之后的粒子 for (int k = i; k < num; k++) { //接受顺序在这个之后的粒子 //只要有一个在我之前的跑到了我的后面,那当前就是变异的 if (send[j] == receive[k]) { flag = true; break; } } } if(flag){ result++; } } System.out.println(result); } }