[ad_1]
Given an array of numbers. For each number in array, find the multiples that exist in the array. Eg Array - [2, 3, 6, 10] Output- Multiples of 2 - 6,10 Multiples of 3 - 6 Multiples of 6 - No multiples Multiples of 10 - No multiples
しかし、私は得ています
Multiples of each element of array is: Multiples of2Is No multiples Multiples of2is:6 Multiples of2is:10 Multiples of2is:0 Multiples of3is:6 Multiples of3Is No multiples Multiples of3is:0 Multiples of6Is No multiples Multiples of6is:0 Multiples of10is:0
私が試したこと:
import java.util.*; import java.io.*; import java.lang.*; public class multiplesarrays { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("Enter the no: of elements in array"); int n=sc.nextInt(); int arr[]=new int[100]; for(int i=0; i<n; i++) { arr[i]=sc.nextInt(); } System.out.println("Multiples of each element of array is:"); for(int i=0; i<n; i++) { for(int j=i+1; j<=n; j++) { if(arr[j]%arr[i]!=0) { System.out.println("Multiples of"+arr[i]+ "Is No multiples"); } else if(arr[j]%arr[i]==0) { System.out.println("Multiples of"+arr[i]+"is:"+arr[j]); } } } } }
解決策 1
簡単な解決策: 配列をソートします。 そうすれば、すべての重複が互いに隣り合って、1 回のパスで位置を特定し、数え、印刷することができます。
ヒント: Java には配列のソートメソッドが組み込まれています…
ただし、コードをインデントしてください。そうすることではるかに読みやすくなります。
解決策 2
引用:しかし、私は得ています
プログラマーとしてのあなたの仕事は、コード内のバグを見つけることでもあります。
– 入力を注意深く見ると、重複はなく、値がソートされています。 これらの条件を強制しない場合、出力は正しくなりません。
引用:JavaMultiples of2is:0
– これは、入力にない値に対して 2 をテストしていることを示します。
– 「2 の倍数 – 」は正しい結果で何回表示されますか。コードで何回表示されますか?
– 複数がないことはいつわかりますか? あなたのコードはいつそれを出力しますか?
これらの質問を自分自身に問い、その答えから問題を特定し、修正を加えることができるはずです。
[ad_2]
コメント