%%%
J佬
by wmy_goes_to_thu @ 2020-10-17 15:22:43
# 0x0005 补充
使用这样的方法就可以成功的AC了
![image.png](https://pic.rmb.bdstatic.com/bjh/29ed75c49c7293bba21831b682808bd4.png)
---
### 代码:
```java
import java.util.Scanner;
//洛谷题目:https://www.luogu.com.cn/problem/P1116
public class Main {
/*
*
输入格式
共两行。
第一行是车厢总数N N(≤10000)。
第二行是NN个不同的数表示初始的车厢顺序。
输出格式
一个整数,最少的旋转次数。
* */
public static void main(String [] args){
Scanner in = new Scanner(System.in);
//踩坑:这里需要用next(),否则在测试点都是RE,因为数字太多的话,机器会分行输入
int num = Integer.valueOf(in.next());//第一个输入是有多少车厢
int[] numsArr = new int[num];
for(int i=0;i<num;i++) {
numsArr[i] = Integer.valueOf(in.next());//第二个输入是车厢号
}
int times = 0;
boolean flag = true;
while(flag) {
flag = false;//如果所有数字都是排序成功,就结束死循环
for(int i=0;i<num-1;i++) {
if(numsArr[i] > numsArr[i+1]) {
times ++;
//如果i比i+1大,交换
int t = numsArr[i+1];
numsArr[i+1] = numsArr[i];
numsArr[i] = t;
flag = true;//有比任何数字大的,继续循环
}
}
}
System.out.println(times);
}
}
```
by VioletTec @ 2020-10-17 15:23:03
@[wangmaohua20090908](/user/107484) 没办法,只会写Jvav,最近也没时间和精力去学其他语言的语法了
![image.png](https://pic.rmb.bdstatic.com/bjh/a85abf7e145ba2ebd04ed1d8ac891a75.png)
by VioletTec @ 2020-10-17 15:25:57
实测,加一个scanner.close()能AC
不用改nextInt();
## 代码如下 ##
```java
package com.Learn.JavaSE;
import java.util.Scanner;
public class draft {
public static void main(String [] args){
Scanner in = new Scanner(System.in);
int num = in.nextInt();
int[] numsArr = new int[num+5];
for(int i=0;i<num;i++) {
numsArr[i] = in.nextInt();//第二个输入是车厢号
}
in.close();
int times = 0;
boolean flag = true;
while(flag) {
flag = false;//如果所有数字都是排序成功,就结束死循环
for(int i=0;i<num-1;i++) {
if(numsArr[i] > numsArr[i+1]) {
times ++;
//如果i比i+1大,交换4
int t = numsArr[i+1];
numsArr[i+1] = numsArr[i];
numsArr[i] = t;
flag = true;//有比任何数字大的,继续循环
}
}
}
System.out.println(times);
}
}
```
by scudhd @ 2022-04-12 19:23:17