Java

[Java의 정석] Chapter4 연습문제

oneH 2024. 9. 13. 22:38

 

 

 

문제 4-4

 

1+(-2)+3+(-4)+ . . . 과 같은 식으로 계속 더해나갔을 때, 몇 번 더해야 총합 100이상이 되는가?

        int sum = 0;
        for (int i = 1; ; i++) {
            if (i % 2 == 0) {
                sum -= i;
            } else {
                sum += i;
            }
            if (sum >= 100) {
                System.out.println("횟수는: " + i);
                break;
            }
        }

 

 

 

 

 

문제 4-5

 

다음 for문을 while문으로 변경해라.

 

        int i=0;
        while(i<10){
            int j=0;
            while(j<i){
                System.out.print("*");
                j++;
            }
            System.out.println();
            i++;
        }

 

 

 

문제 4-6 

 

두개의 주사위를 던졌을 때, 눈의 합이 6이 되는 모든 경우의 수를 출력해라.

 

        int sum = 0;
        int count = 0;
        for (int i = 1; i <= 6; i++) {
            for (int j = 1; j <= 6; j++) {
                sum = i + j;
                if (sum == 6) count++;
            }
        }
        System.out.println("눈의 합이 6이 될 경우의 수는:" + count);

 

 

 

문제 4-7

 

숫자로 이루어진 문자열이 있을 때, 각 자리의 합을 더한 값을 출력해라.

예)"1234" => 1+2+3+4 = 10

 

        String str = "12345";
        int sum = 0;
        for(int i=0; i<str.length();i++){
            int strDivide = str.charAt(i)-48;
            sum+=strDivide;
        }
        System.out.println("sum = " + sum);

 

 

문제 4-8

 

Math.random method를 이용해 1~6 사이의 임의의 정수를 변수에 저장해라.

 

        int randomValue = (int)(Math.random()*6)+1;
        System.out.println("randomValue = " + randomValue);

 

 

문제 4-9

 

int타입의 변수 num이 있을 때, 각 자리의 합을 더한 결과를 출력해라 

예) 12345 => 1+2+3+4+5 = 15

 

        int number = 12345;
        int sum = 0;
        for(int i=0; ; i++){
            int plusAtSum = number%10;
            sum+=plusAtSum;
            number/=10;
            if(number==0){
                break;
            }
        }
        System.out.println("sum = " + sum);

 

 

문제 4-10

 

숫자 맞히기 게임 1~100 사이의 임이의 값을 사용자가 맞추는 게임 맞히면 끝난다.

 

        int answer = (int)(Math.random()*100)+1;
        int input = 0;
        int count = 0;

        java.util.Scanner sc = new Scanner(System.in);

        do{
            count++;
            System.out.print("1과 100사이의 값을 입력하세요 : ");
            input = sc.nextInt();

            if(answer==input){
                System.out.println("맞혔습니다.");
                System.out.println("시도는 "+count+"번입니다.");
                break;
            }else if(answer>input){
                System.out.println("더 큰 수를 입력하세요.");
            }else{
                System.out.println("더 작은 수를 입력하세요.");
            }
        }while(true);

 

 

 

 

 

 

 

  CHAPTER 4 전체 연습 문제 코드

 

 

🔐 코드

더보기
import java.util.Scanner;

public class Chapter4 {
    public static void main(String[] args) {

        int sum = 0;
        for (int i = 1; ; i++) {
            if (i % 2 == 0) {
                sum -= i;
            } else {
                sum += i;
            }
            if (sum >= 100) {
                System.out.println("횟수는: " + i);
                break;
            }
        }

        int i = 0;
        while (i < 10) {
            int j = 0;
            while (j < i) {
                System.out.print("*");
                j++;
            }
            System.out.println();
            i++;
        }

        int sum = 0;
        int count = 0;
        for (int i = 1; i <= 6; i++) {
            for (int j = 1; j <= 6; j++) {
                sum = i + j;
                if (sum == 6) count++;
            }
        }
        System.out.println("눈의 합이 6이 될 경우의 수는:" + count);


        String str = "12345";
        int sum = 0;
        for (int i = 0; i < str.length(); i++) {
            int strDivide = str.charAt(i) - 48;
            sum += strDivide;
        }
        System.out.println("sum = " + sum);


        int randomValue = (int) (Math.random() * 6) + 1;
        System.out.println("randomValue = " + randomValue);


        int number = 12345;
        int sum = 0;
        for (int i = 0; ; i++) {
            int plusAtSum = number % 10;
            sum += plusAtSum;
            number /= 10;
            if (number == 0) {
                break;
            }
        }
        System.out.println("sum = " + sum);


        int answer = (int) (Math.random() * 100) + 1;
        int input = 0;
        int count = 0;

        java.util.Scanner sc = new Scanner(System.in);

        do {
            count++;
            System.out.print("1과 100사이의 값을 입력하세요 : ");
            input = sc.nextInt();

            if (answer == input) {
                System.out.println("맞혔습니다.");
                System.out.println("시도는 " + count + "번입니다.");
                break;
            } else if (answer > input) {
                System.out.println("더 큰 수를 입력하세요.");
            } else {
                System.out.println("더 작은 수를 입력히세요.");
            }
        } while (true);
    }
}