public class fentang {
static boolean su(int a[],int n){
for(int i=2;i<=n;i++){
if(a[i-1]!=a[i]){
return false;
}
else {
continue;
}
}
return true;
}
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int a[]=new int[100];
int n=input.nextInt();
int temp=0;
int count=0;
for(int i=1;i<=n;i++){
a[i]=input.nextInt();
}
while (!su(a, n)) {
for(int i=1;i<=n;i++){
if(i==1){
temp=a[i]/2;
a[i]-=temp;
}
else{
a[i-1]+=a[i]/2;
a[i]-=a[i]/2;
}
}
a[n]+=temp;
for(int i=1;i<=n;i++){
if(a[i]%2==1){
a[i]+=1;
count++;
}
}
if(su(a, n)){
break;
}
}
System.out.println(count);
}
}
static boolean su(int a[],int n){
for(int i=2;i<=n;i++){
if(a[i-1]!=a[i]){
return false;
}
else {
continue;
}
}
return true;
}
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int a[]=new int[100];
int n=input.nextInt();
int temp=0;
int count=0;
for(int i=1;i<=n;i++){
a[i]=input.nextInt();
}
while (!su(a, n)) {
for(int i=1;i<=n;i++){
if(i==1){
temp=a[i]/2;
a[i]-=temp;
}
else{
a[i-1]+=a[i]/2;
a[i]-=a[i]/2;
}
}
a[n]+=temp;
for(int i=1;i<=n;i++){
if(a[i]%2==1){
a[i]+=1;
count++;
}
}
if(su(a, n)){
break;
}
}
System.out.println(count);
}
}
本文介绍了一个Java程序,该程序通过一系列操作使输入数组中的所有元素相等,并统计了所需的最少操作次数。首先检查数组是否已全部相等,如果不等,则执行操作:将每个元素除以2向下取整并加到前一个元素上,同时记录奇数元素并对它们加1直至数组完全相等。
4824

被折叠的 条评论
为什么被折叠?



