이것저것

[Java] 구구단 문제 본문

Java/Java 풀어본 문제

[Java] 구구단 문제

곰태태 2020. 3. 30. 23:53
반응형
SMALL

기본적인 구구단

 

i는 구구단의 단을 의미하고

j는 구구단의 뒷부분을 의미한다

1
2
3
4
5
6
7
8
9
10
11
public class GuguDan {
    public static void main(String[] args) {
        
        for(int i = 1; i < 10; i++) {
            for(int j = 1; j < 10; j++) {
                System.out.println(i + " x " + j + " = " + i*j);
                System.out.printf("%d x %d = %d \n", i, j, i*j);
            }
        }
    }
}
 
 

 

입력을 받은 구구단을 출력

 

Scanner를 사용할 경우에는 항상 import부분에 Scanner를 추가해줘야 한다

nextInt()로 num1에 입력받은 정수 값을 넣어준다

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.util.Scanner;
 
public class GuguDan {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        //num1과 result의 값을 0으로 초기화 해준다. (int는 초기화 해주지않아도 0이 기본값이다)
        int num1 = 0;
        int result = 0;
        
        System.out.print("출력할 구구단을 입력하세요 : ");
        num1 = sc.nextInt();        //num1에 입력받은 값이 들어온다.
        for(int i = 1; i < 10; i++) {
            result = num1 * i;
            System.out.println(num1 + " x " + i + " = " + result);
            System.out.printf("%d x %d = %d \n", num1, i, result);
        }
    }
}
 
 

 

1~9까지의 랜덤으로 구구단을 출력하기

 

Math.random()은 0.0부터 1.0 미만의 수를 랜덤으로 뽑아준다

Math.random()에 9를 곱하게 되면 0.0부터 9.0 미만의 수를 뽑아주게 되고

거기에 1을 더해준다면 1.0부터 10.0 미만의 수를 뽑아주게 된다

하지만 Math.random()은 double타입이므로 num1은 int타입이므로 형 변환이 필요하다

그러므로 (int)(Math.random()*9 +1)을 해주게 되면 1부터 10 미만의 수 즉 1부터 9까지의 정수 중 하나를 입력시켜준다

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class GuguDan {
    public static void main(String[] args) {
        
        //num1을 1~9까지 중에 랜덤으로 입력해준다.
        int num1 = (int)(Math.random()*9 + 1);
        int result = 0;
        
        System.out.println("랜덤 구구단");
        for(int i = 1; i < 10; i++) {
            result = num1 * i;
            System.out.println(num1 + " x " + i + " = " + result);
            System.out.printf("%d x %d = %d \n", num1, i, result);
        }
    }
}
 
 
 

System.out.println을 사용할 경우에는

System.out.println(i " x " + j + " = " + i*j); 와 같이 x와 =부분을 ""로 표시해줘야 한다

하지만 System.out.printf를 사용하면 조금 더 간단하게 사용할 수 있다

System.out.printf("%d x %d = %d \n", i, j, i*j); 로 C언어에서 볼 수 있는 형식이다

작성자가 편한 부분을 사용하면 되지만 ""하나로 표현할 수 있다는 부분에서 조금 더 간편하다고 느낀다

printf의 %d는 정수를 쓸 수 있다는 것을 의미하고 \n은 줄 바꿈을 뜻한다

나중에 더 자세하게 정리해놓을 예정이다

반응형
LIST
Comments