考虑到每个步骤中只有一个integers
,我试图计算array
中integer
的所有array
可被2整除的次数。
例如,最初如果我有[2,4,2]
:count = 0
和[1,4,2] , count=1
第1步
[1,2,2] , count=2
第2步
[1,1,2] , count=3
第3步
[1,1,1] , count=4
第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);
}
我对此问题的处理方法如下:
代码
1
2
1
Count:3
输出
array
上面给出的代码中的问题是integers are no more divisible by 2
只被扫描一次,我想扫描数组,直到所有UIImage
答案 0 :(得分:1)
请注意,您有两个问题:
你需要一个内部循环来划分每个数组元素,只要它可以被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);
}
答案 1 :(得分:1)
for (int i=0;i<ar.length ;i++ ) {
while(ar[i]%2==0 && ar[i]>1){
ar[i]=ar[i]/2;
count++;
}
}
这就足够了。