输入20个整数,输出其中能被数组中其它元素整除的那些数组元素。为什么我输出不对,求纠正。
样例输入
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
样例输出
4 6 8 9 10 12 14 15 16 18 20 21
我的代码:
Scanner rd=new Scanner(System.in);
int arr[]=new int[20];
int k=0;
for(int i=0;i<20;i++)
{
arr[i]+=rd.nextInt();
}
for(int i=0;i<arr.length;i++)
{
k=i;
arr[k]=arr[i];
for(int j=0;j<20;j++)
{
if(k==j)
{
continue;
}
else if(arr[k]%arr[j]==0)
{
System.out.print(arr[k]+" ");
}
}
}
}
}
------最佳解决方案--------------------
你的这个:
if(flag)
{
System.out.print(arr[i]+" ");
}
是不是写错地方了呢?
还有:
rd.close();
呵呵,对照一下就好了。
------其他解决方案--------------------
哪里错了 没看出来?
------其他解决方案--------------------
是这个意思吗?
import java.util.Scanner;
public class Demo
{
public static void main(String[] args)
{
int len = 20;
Scanner rd = new Scanner(System.in);
int arr[] = new int[len];
for (int i = 0; i < len; i++)
{
arr[i] += rd.nextInt();
}
for (int i = 0; i < len; i++)
{
boolean flag = true;
for (int j = 0; j < len; j++)
{
if(0 != arr[j] % arr[i])
flag = false;
}
if(flag)
System.out.println(arr[i]);
}
rd.close();
}
}
------其他解决方案--------------------
楼上小兵正解
------其他解决方案--------------------