본문 바로가기

알고리즘/기타퀴즈

Quiz22, Quiz23

반응형

안녕하세요. pitang입니다.
알고리즘 문제 2개를 풀어보도록 하겠습니다.

 

Quiz22

두 수의 더하기 혹은 빼기를 맞추는 문제를 지속적으로 출제하는 프로그램이다.
두 가지의 수를 1 ~ 100 사이의 난수를 발생시켜 지속적으로 문제를 출제한 후, 정답이면 정답 카운트를 +1씩 틀리면 오답 카운트를 +1씩 올려주는 프로그램을 만들어주세요.
또한 이 프로그램은 0을 입력받으면 중단(탈출)합니다.

<console>
-----------------------------
89 + 50 = ?
[문제를 그만 푸시려면 0을 입력하세요.]
> 1
오답입니다.
-----------------------------
15 + 30 = ?
[문제를 그만 푸시려면 0을 입력하세요.]
> 45
정답입니다.
-----------------------------
51 - 56 = ?
[문제를 그만 푸시려면 0을 입력하세요.]
> 0
프로그램을 종료합니다.
정답 횟수 : 1회
오답 횟수 : 1회

 

⬇️⬇️⬇️ 정답은 더보기를 눌러주세요 ⬇️⬇️⬇️

 

더보기
public class Quiz22 { 
	
    public static void main(String[] args) {
    
    	Scanner scan = new Scanner(System.in);
        
        int countA = 0;	//정답카운트
        int countB = 0;	//오답카운트	
        String[] c = {"+", "-"};
        
        while(true) {
        	int a = (int)(Math.random() * 100) + 1;
            int b = (int)(Math.random() * 100) + 1;
            int ran = (int)(Math.random() * 2);
            System.out.println("------------------------");
            System.out.println(a + c[ran] + b + " = ?");
            System.out.println("[문제를 그만 푸시려면 0을 입력하세요.]");
            System.out.print("> ");
            int answer = scan.nextInt();
            
            if(answer == 0 && a + b != 0) {
            	System.out.println("프로그램을 종료합니다.");
                break;
            } else if (answer == a+b) {
            	System.out.println("정답입니다.");
                countA++;
            } else if (answer != a+b) {
            	System.out.println("오답입니다.");
                countB++;
            }
        }
    	System.out.println("정답 횟수 : " + countA + "회");
        System.out.println("오답 횟수 : " + countB + "회");
        scan.close();
    }
}

 

Quiz23

wihle, swith, if, break를 사용해 프로그램을 만들어주세요.

Scanner를 사용해 금액을 입력받고 음료수를 선택하면 금액에서 차감하세요.

금액이 부족하다면 "금액이 부족합니다."를 출력하세요.

4를 입력받으면 남은 금액을 반환하고 반복문을 종료해주세요.

<console>
금액을 투입해 주세요> 1000
남은금액 : 1000원
[1]뎀이소다 : 400원, [2]밀킥스 : 500원, [3]코가콜라 : 600원, [4]잔돈받기
음료수 선택 >
2
밀킥스를 받았습니다.

남은금액 : 500원
[1]뎀이소다 : 400원, [2]밀킥스 : 500원, [3]코가콜라 : 600원, [4]잔돈받기
음료수 선택 >
 1
뎀이소다를 받았습니다.

남은금액 : 500원
[1]뎀이소다 : 400원, [2]밀킥스 : 500원, [3]코가콜라 : 600원, [4]잔돈받기
음료수 선택 >
 3
금액이 부족합니다.


남은금액 : 100원
[1]뎀이소다 : 400원, [2]밀킥스 : 500원, [3]코가콜라 : 600원, [4]잔돈받기
음료수 선택 >
 4
남은 금액 100원을 반환합니다.

 

⬇️⬇️⬇️ 정답은 더보기를 눌러주세요 ⬇️⬇️⬇️

 

더보기
public class Quiz23 {
	
    public static void main(String[] args) {
    
    	Scanner scan = new Scanner(System.in);
        
        System.out.print("금액을 투입해 주세요. > ");
        int money = scan.nextInt();
        
        ex:while(true) {
        	System.out.println("남은금액 : " + money + "원");
            System.out.println("[1]뎀이소다 : 400원, [2]밀킥스 : 500원, [3]코가콜라 : 600원, [4]잔돈받기");
            System.out.print("음료수 선택 > ");
            int menu = scan.nextInt();
            
            switch(menu) {
            	case 1:
                	if(money >= 400) {
                    	System.out.println("뎀이소다를 받았습니다.");
                        money -= 400;
                    } else {
                    	System.out.println("금액이 부족합니다.");
                    }
                case 2:
                	if(money >= 500) {
                    	System.out.println("밀킥스를 받았습니다.");
                        money -= 500;
                    } else {
                    	System.out.println("금액이 부족합니다.");
                    }
                case 3:
                	if(money >= 600) {
                    	System.out.println("코가콜라를 받았습니다.");
                        money -= 600;
                    } else {
                    	System.out.println("금액이 부족합니다.");
                    }
                case 4:
              		System.out.println("남은 금액 " + money + "원을 반환합니다.");
                    break ex;
                default:
                	System.out.println("잘못 입력했습니다.");
                    System.out.println("메뉴를 정확히 입력해주세요.");
                    break;
            }
            System.out.println();
        }
    }
}

 

감사합니다.

 

*m1맥북을 사용 중입니다.*

728x90
반응형

'알고리즘 > 기타퀴즈' 카테고리의 다른 글

RandomSeat, RandomLotto  (0) 2021.08.31
MethodQuiz01, MethodQuiz02  (0) 2021.08.31
Quiz20, Quiz21 (정렬방법)  (0) 2021.08.30
Quiz18, Quiz19 (중첩반복문)  (0) 2021.08.26
Quiz16, Quiz17 (중첩반복문)  (0) 2021.08.26