输出:最少移动次数 题说的是一共n堆数,每一堆数也不一样,每一堆的数只能往左右移动。 算最少移动次数。 题解: 第一步:先算平均数 第二步:计算每一堆和平均数的关系 第三步:当ai不等于0时,ai+1=ai+1+ai,次数加1. 注意最后的不用算了。
package 普及减
;
import java
.util
.Scanner
;
public class P1031 {
public static void main(String
[] args
) {
Scanner sc
= new Scanner(System
.in
);
int n
=sc
.nextInt();
int a
[]=new int[n
];
int sum
=0;
for(int i
=0;i
<n
;i
++) {
a
[i
]=sc
.nextInt();
sum
+=a
[i
];
}
sum
/=n
;
for(int i
=0;i
<n
;i
++) {
a
[i
]-=sum
;
}
int count
=0;
for(int i
=0;i
<n
-1;i
++) {
if(a
[i
]==0) {
continue;
}
a
[i
+1]=a
[i
+1]+a
[i
];
count
++;
}
System
.out
.println(count
);
}
}
转载请注明原文地址:https://blackberry.8miu.com/read-18285.html