gpt4 book ai didi

java - 数组中所有数字都被 2 整除的次数

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:10:23 25 4
gpt4 key购买 nike

我正在尝试计算 array 中所有 integers 被 2 整除的次数,只考虑一个 integer每一步。例如,最初如果我有 array :[2,4,2]count = 0

Step 1

[1,4,2] , count=1

Step 2

[1,2,2] , count=2

Step 3

[1,1,2] , count=3

Step 4

[1,1,1] , count=4

我解决问题的方法如下:

代码

public static void main(String[] args) {
int[] ar={2,4,2};
int[] p=new int[ar.length];
int count=0;
for (int i=0;i<ar.length ;i++ ) {
if(ar[i]>=1){
ar[i]=ar[i]/2;
count++;
}
}
for (int x:ar) {
System.out.println(x);
}
System.out.println("Count:"+count);

}

Output

1
2
1
Count:3

上面给出的代码中的问题是数组只被扫描了一次,我想扫描数组直到所有的整数都不能被2整除

最佳答案

请注意,您有两个问题:

  1. 您最多将数组的每个元素除以 2。
  2. 您将数组的元素除以 2 而没有首先检查它们是否可以被 2 整除。

你需要一个内部循环来划分每个数组元素,只要它能被 2 整除:

public static void main(String[] args) {
int[] ar={2,4,2};
int[] p=new int[ar.length];
int count=0;
for (int i=0;i<ar.length ;i++ ) {
while (ar[i] % 2 == 0 && ar[i] > 0) { // keep dividing ar[i] by 2 as long as
// it is divisible by 2
ar[i]=ar[i]/2;
count++;
}
}
for (int x:ar) {
System.out.println(x);
}
System.out.println("Count:"+count);
}

关于java - 数组中所有数字都被 2 整除的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46386955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com