2019년 9월 1일 일요일

[JAVA] 수열 예제, High-Low 게임


import java.util.Random;
import java.util.Scanner;

public class Day04Homework {

public static void test01(String[] args) {
// 1+2-3+4-5+6-7+8-9+10=7
int max = 10;
int min = 1;
int total = 0;

for (int i = 1; i <= max; i++) {
if (i == min) {
total += i;
System.out.print(i);
} else if (i % 2 == 0) {
total += i;
System.out.print("+" + i);
} else {
total -= i;
System.out.print("-" + i);
} // if-else
}
System.out.print("=" + total);

} // test01

public static void main(String[] args) {
// 1+1+2+3+5+8+13+21=54 피보나치 수열
int n1 = 1, n2 = 1, n3 = 0;
int max = 8; // 피보나치 수열 출력할 횟수
int sum = 0;

for (int i = 0; i < max; i++) {
n3 = n2;
sum += n3;

if (i == 0) {
System.out.print(n3);
} else {
System.out.print("+" + n3);
}

n2 = n1;
n1 = n2 + n3;

}
System.out.print("=" + sum); // 총 합
}// test02



public static void test03(String[] args) {
// 1+1-2+3-5+8-13+21=14
int n1 = 1, n2 = 1, n3 = 0;
int max = 8; // 피보나치 수열 출력할 횟수
int sum = 0;

for (int i = 0; i < max; i++) {
n3 = n2;

if (i == 0) {
System.out.print(n3);
sum += n3;
} else if(i%2==1) {
System.out.print("+" + n3);
sum += n3;
} else{
System.out.print("-" + n3);
sum -= n3;
}

n2 = n1;
n1 = n2 + n3;

}
System.out.print("=" + sum); // 총 합

} // test03

public static void test04(String[] args) {
// 난수 발생기를 이용한 High-Low Game
Random rand = new Random();
Scanner scan = new Scanner(System.in);

int min = 1, max = 100; // 범위
int sysNum = min + rand.nextInt(max); // 1 + (0~99)니까, 1에서 100 사이 난수
int cnt = 5; // 총 횟수
int userNum = 0; // 5번 입력 받아야 함.
int low = 1, high = 100; // 추측 실패 시 제공할 범위
int answer = 0; // 재시도 입력 받을 변수

System.out.println("1부터 100까지의 숫자를 입력하세요");

for (int i = 1; i <= cnt; i++) {

userNum = scan.nextInt();

if (i < 5) {

if (userNum > sysNum) {
System.out.printf("입력하신 숫자 : %d\n", userNum);
high = userNum - 1;
System.out.printf("땡! 힌트)더 작은 숫자를 입력하세요! %d~%d사이\n", low, high);
} else if (userNum < sysNum) {
System.out.printf("입력하신 숫자 : %d\n", userNum);
low = userNum + 1;
System.out.printf("땡! 힌트)더 큰 숫자를 입력하세요! %d~%d사이\n", low, high);
} else if (userNum == sysNum) {
System.out.println("정답입니다!\n");
System.exit(0);// 대신에 break?
}
} else {
System.out.println("기회를 모두 소진하였습니다 재시도는 1을 입력하세요>>>");
answer = scan.nextInt();
if (answer == 1) {
i = 1;
System.out.println("1부터 100까지의 숫자를 입력하세요");
} // 기회 모두 소진 시

} // if-else
} // for

scan.close();
} // test04

}

댓글 없음:

댓글 쓰기

[프로그래머스] 프린터 (자바/Java)

문제 설명 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은...