2017-10-16 1 views
0

사용자의 시작 번호와 끝 번호를 허용하는 프로그램을 작성하십시오. 해당 범위의 각 숫자에 대해 균등하게 나누는 모든 숫자를 인쇄합니다 (0 나머지가 나눠 짐).루프 인쇄의 경우 범위가 지정된 균등 분할 번호

범위의 첫 번째 숫자 만 가져올 수 있었지만 진행 번호와 최종 번호는 인쇄되지 않습니다. (85) (89)의 출력은 다음과 같이한다 : 예 입력은이었다

85 1 5 17 85

86 나누어 1 2 43 86

(87)에 의해 균등하게 나누어 고르게 나누어 1 3 29 87

88 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 + " "); 
     } 
     } 
} 
} 
,174 의해 나누어 1 2 4 11 22 44 88

(89)에 의해 균등하게 분할된다

+0

입력 사항은 무엇입니까? –

답변

0

귀하의 의견은이 불변의 것을 나타냅니다 : num1 <= num2. 두 도우미 함수 (즉, 루프를 포함)를 호출, 또는 적어도 1에서 실행하는 중첩 루프를 호출

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

.. n : 그래서 오히려 for (num2 = 1; num2 <= num1; num2 ++)으로 num2 입력을 버리는 것보다, 당신의 외부 루프를 원하는 , 나머지 테스트. 적절하게 명명 된 도우미 함수에 내부 루프를 넣으면 선생님은 감동받을 것입니다. 힌트 : 그 내부 루프에 대해 또 다른 변수를 선언해야합니다.

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(); 
     } 
    } 
} 
관련 문제