달덩이>< 2022. 9. 5. 21:27

1. 2개의 숫자를 프로그램 내부에서 자동 생성하여 더하기 퀴즈

package p05.practice;

import java.util.Scanner;

// 2개의 숫자를 프로그램 내부에서 자동 생성하여 더하기 퀴즈
public class AdditionQuiz {

	public static void main(String[] args) {
		// 1970년 1월 1일 0시 0분 0초 기준으로 현재까지 1000분의 1초 단위의 숫자를 return
		long currentTimeMillisecond = System.currentTimeMillis();
		int num1 = (int) currentTimeMillisecond % 10;  // num1 : 0 ~ 9
		int num2 = (int) currentTimeMillisecond / 10 % 10;
		
//		System.out.println("currentTimeMillisecond = " + currentTimeMillisecond);
//		System.out.println("num1 = " + num1);
//		System.out.println("num2 = " + num2);
		//실행될때마다 결과값이 달라진다
		
		Scanner input = new Scanner(System.in);
		
		System.out.println("숫자 " + num1 + "과 숫자 " + num2 + "의 합계는 얼마인가 ?");
		int answer =input.nextInt();
		boolean bCorrect =  ( (num1 + num2) == answer);
		System.out.println(num1 + "+" + num2 + "=" + answer + "가 맞는가요 ?" + bCorrect );
		
	}

}

 

  1. 먼저 currentTimeMillis()로 1970년 1월 1일 0시 0분 0초 기준으로 현재까지 1000분의 1 값을 return 한다.
  2. int n1에 currentTimeMillis()를 넣어주고 %10을 해줘서 n1에 0 ~ 9 사이에 값을 넣어준다.
  3. int n2에는 똑같이 currentTimeMillis()를 넣어주고 /10 %10을 해준다.
  4. 그 다음 System.out.println()을 이용하여 console창에 질문을 작성해주고 Scanner를 이용하여 내가 직접 입력할 수 있도록 만들어준다. (이 코드는 실행될 때마다 결과값이 달라진다!!)
  5. 마지막으로는 boolean을 이용하여 내가 직접 입력한 값이 정답인지 오답인지 판단해준다. 정답이면 true, 오답이면 false가 나온다.

위 사진은 코딩에서 나온 결과값과 내가 입력한 결과값이 같은 경우이다.
위 사진은 코딩에서 나온 결과값과 내가 입력한 결과값이 다른 경우이다.



2. 0과 1000사이의 3자리 정수를 키보드에서 읽어, 정수의 각 자리 수를 모두 더한 값을 출력하는 문제

package q01.quiz01;

import java.util.Scanner;

// 0과 1000사이의 3자리 정수를 키보드에서 읽어, 정수의 각 자리의 수를 모두 더한 값을 출력하시오

public class Quiz01 {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		
		System.out.println("정수를 입력하세요 : ");
		
		int answer = input.nextInt();
		
		int a = answer % 10;
		int b = answer /10 %10;
		int c = answer /100 %100;
		
		System.out.println("각 자리의 수를 모두 더한 값은 " + (a + b + c ) + "입니다.");

	}

}

 

  1. 0에서 1000사이의 3자리 정수를 키보드에서 입력 받아야 해서 Scanner를 사용해준다.
  2. Scanner에서 입력 받은 3자리 정수의 각 자리 수를 더해야 해서 int a, b, c 변수를 만들어준다.
  3.  a 변수에는 %10을 해줘서 3자리 정수의 마지막 자리만 구해준다.
  4.  b 변수에는 /10 %10을 해줘서 3자리 정수 중 2번째 자리만 구해준다. ( 3자리 정수에 /10을 해주면 두자리 정수의 몫을 가지게 되고 그 몫에서 %10을 해줘서 두번째 정수를 구할 수 있다.)
  5.  c 변수에는 /100 %100을 해줘서 3자리 정수 중 첫번째 자리만 구해준다. (3자리 정수에서 /100을 해주면 한자리 정수의 몫만 가지게 되고 거기서 %100을 해주면 첫번째 정수를 구할 수 있다.)

위 사진은 Console창에 위에 코드를 실행하면 나타나는 결과값이다.



3. 분단위의 숫자를 키보드에서 읽어, 일의 수와 년의 수를 구하여 Console에 출력하시오.

package q01.quiz01;

import java.util.Scanner;

// 분단위의 숫자를 키보드에서 읽어, 일의 수와 년의 수를 구하여 console에 출력하시오.

public class Quiz02 {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		
		System.out.println("시간을 분단위로 입력하세요.");
		
		int miutes = input.nextInt();
		
		int day = (miutes / 60) / 24;
		int year = ((miutes / 60) / 24) / 365;
		
		System.out.println("입력된 " + miutes + "분을 " + "일로 바꾸면 " + day + "일입니다."); 
		System.out.println("입력된 " + miutes + "분을 " + "년으로 바꾸면 " + year + "년입니다.");

	}

}

 

  1. 분단위의 숫자를 키보드에서 읽어야해서 Scanner를 이용해준다.
  2. day라는 변수를 만들고 Scanner에서 읽은 분단위 숫자를 /60을 먼저 해주고 /24를 해준다. 여기서 /60을 먼저 해주기 위해 ()를 써준다.
  3. year도 day와 똑같이 분단위 숫자를 /60 해주고 / 24를 해주고 마지막에 /365를 해준다.
  4. 그러면 분단위의 숫자들이 day와 year로 바뀐다.

위 사진은 1일을 분으로 입력한 1440분을 입력한 결과값이다.
위 사진은 1년을 분단위로 입력한 결과값이다.



4. 매월 적금 금액과 1년 이자율을 키보드에서 읽어, 6개월 이자와 원금을 합한 총금액을 출력하시오.

package q01.quiz01;

import java.util.Scanner;

// 매월 적금 금액과 1년 이자율을 키보드에서 읽어, 6개월후에 이자와 원금을 합한 총금액을 출력하시오.

public class Quiz03 {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		
		System.out.println("금액을 입력하세요 : ");
		int answer1 = input.nextInt();
		System.out.println("이자율을 입력하세요 : ");
		double answer2 = input.nextDouble();
		
		int Money = answer1;
		answer2 = (answer2/12)/100;
		
		double total1 = (Money*(1+answer2));
		double total2 = (Money + total1) * (1 + answer2);
		double total3 = (Money + total2) * (1 + answer2);
		double total4 = (Money + total3) * (1 + answer2);
		double total5 = (Money + total4) * (1 + answer2);
		double total6 = (Money + total5) * (1 + answer2);
		
		System.out.println("6개월 후 이자와 원금을 합한 총금액은 " + total6 + "입니다.");
		

	}

}

 

  1. 먼저 Scanner를 이용하여 매월 적금 금액과, 이자율을 입력할 수 있게 만들어준다.
  2. 매월 적금 금액은 Money라는 변수에, 이자율은 answer2라는 변수에 할당해준다.
  3. 여기서 이자율이 12%면 월 이자율은 1%임으로 answer2에 (answer2/12)/100을 해준다.
  4. 이자율 계산방식은 첫번째 달은 (적금 금액 * (1+이자율)이고,
  5.  두번째 달은 (적금 금액 + 첫번째 총금액) * (1+ 이자율)이다. 이런 방식으로 6개월 뒤에 이자와 원금을 합한 총금액을 알고 싶으니 6번을 반복해주면된다.

위 사진은 Console창에 위에 코드를 실행하면 나타나는 결과값이다.(적금 금액은 100, 이자율은 12%)



5. 4개의 정수값을 키보드로부터 읽어, 4개의 정수값이 모두 같으면 "4개 정수값이 동일합니다."

package q01.quiz01;

import java.util.Scanner;

// 4개의 정수값을 키보드로부터 읽어, 4개의 정수값이 모두 같으면 "4개 정수값이 동일합니다."

public class Quiz04 {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		
		System.out.println("1번 정수를 입력하세요.");
		int num1 = input.nextInt();
		
		System.out.println("2번 정수를 입력하세요.");
		int num2 = input.nextInt();
		
		System.out.println("3번 정수를 입력하세요.");
		int num3 = input.nextInt();
		
		System.out.println("4번 정수를 입력하세요.");
		int num4 = input.nextInt();
		
		int a = num1;
		int b = num2;
		int c = num3;
		int d = num4;
		
		if (a == b && b == c) {
			if (c == d) {
				System.out.println("4개의 정수값이 동일합니다.");
			}
		} else {
			System.out.println("4개의 정수값이 동일하지 않습니다.");
		}

	}

}

 

  1. 이 문제도 4개의 정수값을 키보드에서 읽어야하므로 Scanner를 사용해준다.
  2. 그리고 System.out.println()을 이용하여 "1번 정수를 입력하세요."라는 문구를 넣어준다.
  3. num1 ~num4까지의 변수를 보기 쉽게 하기위해 다시 int a~d라는 변수에 할당해준다.
  4. 4개의 정수값이 같은지 확인을 해야하기 때문에 if문을 써서 조건을 붙여준다. 거기에 &&(AND)를 써서 둘다 true일 경우에 다음을 실행하도록 한다.
  5. 다시 한번 if문을 써서 위에서 하지못했던 조건을 추가로 붙여준다.
  6. 마지막으로 else를 써서 위에 조건들이 false이면 "4개의 정수값이 동일하지 않습니다."라는 결과가 나오게 해준다.

위 사진은 4개의 정수 모두 같은 값을 입력했을 때 나오는 결과이다.
위 사진은 4개의 정수 모두 다른 값을 입력했을 때 나오는 결과이다.



6. 2개의 정수를 키보드로부터 읽어, 덧셈, 빼기, 곱하기, 평균, 최대값, 최소값을 구해 출력하시오.

package q01.quiz01;

import java.util.Scanner;

// 2개의 정수를 키보드로부터 읽어, 덧셈, 빼기, 곱하기, 평균, 최대값, 최소값을 구해 출력하시오.

public class Quiz05 {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		
		System.out.println("첫번째 정수를 입력하세요 : ");
		int num1 = input.nextInt();
		
		System.out.println("두번째 정수를 입력하세요 : ");
		int num2 = input.nextInt();
		
		int a = num1;
		int b = num2;
		int result;
		int max;
		int min;
		
		result = a + b;
		System.out.println("a + b = " + result);
		
		result = a - b;
		System.out.println("a - b = " + result);
		
		result = a * b;
		System.out.println("a * b = " + result);
		
		result = (a + b)/2;
		System.out.println("(a + b)/2 = " + result);
		
		max = (a > b) ? a : b;
		System.out.println("max = " + max);
		
		min = (a < b) ? a : b;
		System.out.println("min = " + min);

	}

}

 

  1. 2개의 정수를 키보드로부터 읽어야하므로 Scanner를 이용해준다.
  2. int num1에 첫번째 정수 값을 int num2에 2번째 정수 값을 입력할 수 있게 해준다.
  3. 그다음 a,b 변수에 num1과 num2의 변수를 할당해준다.
  4. 그 다음 result라는 변수를 만들고 덧셈, 빼기, 곱하기, 평균 값을 구하는 식을 result에 각각 넣어준다.
  5. 최대값과 최소값은 max,min을 이용하여 구해준다.

위 사진은 첫번째 정수에 10을 넣고, 두번째 정수에 4를 넣었을 때 덧셈, 빼기, 곱하기, 평균, 최대값, 최소값을 Console 창에 나타낸 것이다.



7. 2개의 double 실수를 키보드로부터 읽어, 2개 실수값 모두 0과 1사이에 있는지 check하고 메시지를 출력하시오.

package q01.quiz01;

import java.util.Scanner;

// 2개의 double 실수를 키보드로부터 읽어, 2개 실수값 모두 0과 1사이에 있는지 check하고 메시지를 출력하시오.

public class Quiz06 {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		
		System.out.println("첫번째 실수를 입력하세요.");
		double num1 = input.nextDouble();
		
		System.out.println("두번째 실수를 입력하세요.");
		double num2 = input.nextDouble();
		
		double a = num1;
		double b = num2;
		
		if (a>0 && a<1) {
			if (b>0 && b<1) {
				System.out.println("두 수 모두 0과 1 사이에 있습니다.");
			}
		} else {
			System.out.println("두 수 모두 0과 1 사이에 있지 않습니다.");
		}


	}

}

 

  1. 2개의 double 실수를 키보드로부터 읽어야하므로 Scanner를 이용해준다.
  2. 그 다음 2개의 실수값이 모두 0과 1사이에 있는지 확인해야해서 조건문인 if문을 써준다.
  3. if(a>0 && a<1) 이라는 뜻은 a가 0과 1사이에 있으면 true 다음 조건을 실행하는 뜻인데, 우리는 2개의 실수 모두 0과 1사이에 있는지 알고 싶기 때문에 한번 더 if문을 써준다. (이번에는 if(b>0 &&b<1)을 써준다)
  4. 이러면 a라는 실수와 b라는 실수 모두 0과 1사이에 있을 때 true라는 뜻이고 System.out.println()을 이용하여 true이면 "두 수 모두 0과 1 사이에 있습니다"라는 문구가 나오도록 출력해준다.
  5. 둘 중 하나라도 아니면 else문을 이용하여 "두 수 모두 0과 1 사이에 있지 않습니다."라는 문구가 나오도록 해준다.

위 사진은 첫번째 실수에 0.3을 두번째 실수에 0.6을 입력해 true인 값이 Console창에 나타낸 것이다.
위 사진은 첫번째 실수에 2를 두번째 실수에 0.3을 입력해서 false인 값을 Console창에 나타낸 것이다.



이렇게 오늘은 이때까지 변수와 연산자를 이용해 간단한 퀴즈 문제들을 풀어보았습니다. 처음에는 어려웠고 잘 안풀리는 문제들도 많았지만 여러번 복습하고 반복하다 보니 다 풀 수 있었습니다.다음에는 조건문과 반복문을 공부해보는 시간을 가져보겠습니다.

반응형