2017-10-16 4 views
0

Schreiben Sie ein Programm, das eine Startnummer vom Benutzer und eine Endnummer akzeptiert. Für jede Zahl in diesem Bereich werden alle Zahlen gedruckt, die sie gleichmäßig teilen (Division so, dass 0 Reste übrig sind).For-Schleife Drucken gleichmäßig verteilt Anzahl in einem Bereich

Ich konnte nur die erste Nummer in der Reichweite bekommen, aber es wird nicht die fortlaufenden und endgültigen Zahlen drucken. Das Beispiel war nur Eingangs: 85 89. Die Ausgabe wie folgt aussehen:

85 ist teilbar durch 1 5 17 85

86 ist teilbar durch 1 2 43 86

87 ist teilbar von 1 3 29 87

88 ist teilbar durch 1 2 4 11 22 44 88

89 ist teilbar durch 1 89

import java.util.*; 
public class NumberRange { 
public static void main(String args[]) { 
    Scanner in = new Scanner(System.in); 
    int num1; 
    int num2; 
    num1 = in.nextInt(); 
    num2 = in.nextInt(); 
    System.out.print(num1 + " is evenly divisible by "); 
    for(num2 = 1; num2 <= num1; num2 ++) 
     { 
     if (num1 % num2 == 0) 
     { 
      System.out.print(num2 + " "); 
     } 
     } 
} 
} 
+0

Was ist Ihre Eingabe? –

Antwort

0

Ihre Eingaben zeigen diese Invariante: num1 <= num2. Anstatt also Verwerfen des num2 Eingang mit for (num2 = 1; num2 <= num1; num2 ++), möchten Sie eine äußere Schleife von:

for (int n = num1; n <= num2; n++) 

, die entweder eine Hilfsfunktion aufruft (enthält eine Schleife) oder zumindest ruft eine verschachtelte Schleife aus 1 läuft .. n Testreste. Ihr Lehrer wird beeindruckt sein, wenn Sie die innere Schleife in eine entsprechend benannte Hilfsfunktion setzen. Tipp: Sie müssen noch eine weitere Variable für diese innere Schleife deklarieren.

0
/* package whatever; // don't place package name! */ 

import java.util.*; 
import java.lang.*; 
import java.io.*; 

/* Name of the class has to be "Main" only if the class is public. */ 
class Ideone 
{ 
    public static void main (String[] args) throws java.lang.Exception 
    { 
     Scanner in = new Scanner(System.in); 
     int num1; 
     int num2; 
     num1 = in.nextInt(); 
     num2 = in.nextInt(); 

     for(int i = num1; i <= num2; i++) 
     { 
      System.out.print(i + " is evenly divisible by "); 
      for(int j = 1; j <= i; j++) 
      { 
       if (i % j == 0) 
       { 
         System.out.print(j + " "); 
       } 
      } 
      System.out.println(); 
     } 
    } 
} 
Verwandte Themen