广联达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);
}
}
查看9道真题和解析