交换瓶子
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/082f76440f1afa3ff566ad475f3a6e36.png)
思路分析:
1. 逐个判断瓶子编号是不是在 相应的位置(下标+1),代码已处理,循环从1遍历,无需再+1
2. 如果在相应位置 continue;
如果不在相应位置 将该索引上的元素 和 编号==该索引的元素互换位置。
3. 每互换一次位置,count++;
package java_2016_A;
import java.util.Scanner;
public class Main009_交换瓶子 {
static int n ;
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
n = in.nextInt();
int count = 0;
int[]a=new int[n+1];
for(int i=1;i<=n;i++)
a[i]=in.nextInt();
for(int i=1;i<=n;i++) {
if(a[i]==i) continue;
else {
swap(a,a[i],i);
count++;
}
}
System.out.println(count);
}
private static void swap(int[]a,int ele, int index) {
int t = 0;
for(int i=1;i<=n;i++) {
if(a[i]==index) {
t = i;
break;
}
}
int temp = a[index];
a[index]=a[t];
a[t]=temp;
}
}