관리 메뉴

bright jazz music

01-6 연습문제 본문

Algorithm/Java text book

01-6 연습문제

bright jazz music 2022. 12. 2. 09:23

연습문제

 

1. 네 값의 최댓값을 구하는 max4 메서드 작성 (static int max4(int a, int b, int c, int d))

//1. 네 값의 최댓값을 구하는 max4 메서드 작성 (static int max4(int a, int b, int c, int d))
public class TestMain{
    public static int max4(int a, int b, int c, int d){
        int max=a;

        if(max <= b){
            max = b;
        }

        if(max <= c) {
            max = c;
        }

        if(max <= d) {
            max = d;
        }

        return max;
    }
    
    public static void main(String [] args){
        Scanner scanner = new Scanner(System.in);
        System.out.print("a: ");
        int a = scanner.nextInt();

        System.out.print("b: ");
        int b = scanner.nextInt();

        System.out.print("c: ");
        int c = scanner.nextInt();

        System.out.print("d: ");
        int d = scanner.nextInt();

        System.out.print(max4(a, b, c, d));
    }
}
/*
a: 1
b: 3
c: 234
d: 66
234
/*

 

2. 세 값의 최솟값을 구하는 min3 메서드 작성

//2. 세 값의 최솟값을 구하는 min3 메서드 작성
public class TestMain{
    public static int min3(int a, int b, int c){
        int min=a;

        if(min >= b){
            min = b;
        } else if (min >= c) {
            min = c;
        }

        return min;
    }

    public static void main(String [] args){
        Scanner scanner = new Scanner(System.in);
        System.out.print("a: ");
        int a = scanner.nextInt();

        System.out.print("b: ");
        int b = scanner.nextInt();

        System.out.print("c: ");
        int c = scanner.nextInt();

        System.out.print(min3(a, b, c));
    }
}

 

3. 네 값의 최솟값을 구하는 min4 메서드 작성

import java.util.Scanner;

//3. 네 값의 최솟값을 구하는 min4 메서드 작성
public class TestMain{
    public static int min4(int a, int b, int c, int d){
        int min=a;

        if(min >= b){
            min = b;
        } else if (min >= c) {
            min = c;
        } else if (min >= d) {
            min = d;
        }

        return min;
    }

    public static void main(String [] args){
        Scanner scanner = new Scanner(System.in);
        System.out.print("a: ");
        int a = scanner.nextInt();

        System.out.print("b: ");
        int b = scanner.nextInt();

        System.out.print("c: ");
        int c = scanner.nextInt();

        System.out.print("d: ");
        int d = scanner.nextInt();

        System.out.print(min4(a, b, c, d));
    }
}

 

4. 세 값의 대소관계 13종류의 모든 조합에 대해 중앙값을 구하여 출력하는 프로그램

//내 코드. 교과서에서는 따로 median 변수를 선언하지 않았다.
//4. 세 값의 대소관계 13종류의 모든 조합에 대해 중앙값을 구하여 출력하는 프로그램
public class TestMain{
    public static int median3(int a, int b, int c){
        int median = 0;
        if(a >= b){
            if(b >= c){
                median = b;
            }else if(c >= a){
                median = a;
            }else {
                median = c;
            }
        } else {
            if( a >= c){
                median =  a;
            }else if(c >= b) {
                median =  b;
            }else {
                median = c;
            }
        }
        return median;
    }

    public static void main(String [] args){
        Scanner scanner = new Scanner(System.in);
        System.out.print("a: ");
        int a = scanner.nextInt();

        System.out.print("b: ");
        int b = scanner.nextInt();

        System.out.print("c: ");
        int c = scanner.nextInt();

        System.out.print(median3(a, b, c));
    }
}

 

5. 중앙값 메서드에서 || 사용이 비효율적인 이유

:앞 조건이 이미 충족하더라도 뒷 조건을 확인하기 때문이다. *더이상 연산이 필요하지 않은 경우에도 추가 연산이 의무화 되기 때문

 

 

6. while문이 종료될 때 i값이 n+1이 됨을 확인 (변수i값 출력)


//6. while문이 종료될 때 i값이 n+1이 됨을 확인 (변수i값 출력)
public class TestMain{

    public static void main(String [] args){
        Scanner scanner = new Scanner(System.in);
        System.out.print("반복할 횟수 입력: ");
        int n = scanner.nextInt();
        int i = 1;
        while(i <= n){
            System.out.println(i);
            i++;
            System.out.println("i++ = " + i);

        }
    }
}
/*반복할 횟수 입력: 2
1
i++ = 2
2
i++ = 3
 */

 

 

7. 입력값 n이 7이면 '1 + 2 + 3 + 4 + 5 + 6 + 7 = 28'을 출력하는 프로그램을 작성하라

//내 코드
import java.util.Scanner;

public class TestMain {

    public static void main(String[] args){

        Scanner stdin = new Scanner(System.in);

        System.out.println("숫자 입력: ");
        int n = stdin.nextInt();

        int sum = 0;
        int i = 1;
        String numExpression ="";

        while (i <= n){
            sum = sum + i;
            if(i == n){
                numExpression = numExpression+i + " = " + sum;

                break;
            }
            numExpression = numExpression + i +" + ";
            i++;
        }

        System.out.println(sum);
        System.out.println(numExpression);
    }
}

 

8.  1부터 10까지의 합은 (1+10)*5처럼 가우스 덧셈을 이용해서 1부터 n까지의 정수합 구하는 프로그램 작성

// 8. 1부터 10까지의 합은 (1+10)*5처럼 가우스 덧셈을 이용해서 1부터 n까지의 정수합 구하는 프로그램 작성
public class TestMain{

    static int gausSum(int startNo, int endNo){
        //1부터 10까지의 합 : (1 + 10)*5
        //1부터 11까지의 합 : (1 + 11)*5.5

        if(startNo==1){
            return (1+endNo)*endNo/2;
        }else
            // e.g. startNo = 9, endNo = 11
            // 66 - (1+(10-1))*(10-1)/2 = 9+10+11 = 30
            return (1+endNo)*endNo/2 - (startNo)*(startNo-1)/2;
    }

    public static void main(String [] args){
        Scanner scanner = new Scanner(System.in);

        System.out.print("시작값 입력: ");
        int startNo = scanner.nextInt();

        System.out.print("종료값 입력: ");
        int endNo = scanner.nextInt();

        if(startNo>0 && endNo>0)
            System.out.println(gausSum(startNo, endNo));
        else
            System.out.println("0보다 큰 수 입력할 것");
    }
}

 

9. 정수 a, b를 포함하여 그 사이의 모든 정수의 합을 구하여 반환하는 메서드 작성(static int sumof(int a, int b)

//9. 정수 a, b를 포함하여 그 사이의 모든 정수의 합을 구하여 반환하는 메서드 작성(static int sumof(int a, int b)
public class TestMain{

    static int sumOf(int startNo, int endNo){
        int sum =0;
        while (startNo <= endNo){
            sum = sum + startNo;
            startNo++;
        }
        return sum;
    }

    public static void main(String [] args){
        Scanner scanner = new Scanner(System.in);

        System.out.print("시작값 입력: ");
        int startNo = scanner.nextInt();

        System.out.print("종료값 입력: ");
        int endNo = scanner.nextInt();
       
        System.out.println(sumOf(startNo, endNo));
    }
}

 

10. 두 변수 a, b에 정수 입력, b-a를 출력하는 프로그램 작성. 단, 변수 b에 입력한 값이 a 이하면 변수 b의 값을 다시 입력.

//10. 두 변수 a, b에 정수 입력, b-a를 출력하는 프로그램 작성. 단, 변수 b에 입력한 값이 a 이하면 변수 b의 값을 다시 입력.

public class TestMain{

    static int subtraction(int a, int b){
        return b - a;
    }

    public static void main(String [] args){
        Scanner scanner = new Scanner(System.in);
        int a, b;

        do {
            System.out.print("a: ");
            a = scanner.nextInt();

            System.out.print("b: ");
            b = scanner.nextInt();

        }while (a>=b);
        //a가 b보다 큰 경우는 계속 반복. 
        //b가 a보다 커야 반복문 탈출
        
        System.out.println(subtraction(a, b));
    }
}

 

11. 양의 정수 입력하고 자릿수 출력. e.g. 1314 = 네자리수 출력

//11. 양의 정수 입력하고 자릿수 출력. e.g. 1314 = 네자리수 출력
public class TestMain{

    public static void main(String [] args){
        Scanner scanner = new Scanner(System.in);

        System.out.print("양의 숫자를 입력하라: ");
        int dividend = scanner.nextInt();

        int count=1;

        while(dividend >= 10){
            dividend = dividend / 10;
           count++;
        }

        System.out.println("입력값은 " + count + "자리 숫자입니다.");
    }
}
/*
양의 숫자를 입력하라: 123456
입력값은 6자리 숫자입니다.
 */

 

12. p38 위/왼쪽에 곱하는 수가 있는 곱셈표 출력 프로그램 작성

 

13. 덧셈표 출력

 

14. 입력한 수를 한 변으로 하는 정사각형을 * 기호로 출력하는 프로그램 작성

 

15. 직각 이등변 삼각형을 출력하는 부분을 static void triangleB(int n)로 작성  //왼쪽 아래가 직각인 이등변 삼각형

 

16. n단의 피라미드를 출력하는 메서드 작성 (크리스마스트리 모양)

 

17. static void npira(int n)을 사용하여 숫자 피라미드 작성(크리스마스 트리)

'Algorithm > Java text book' 카테고리의 다른 글

01-4 반복  (0) 2022.12.01
01-3 순서도( flow chart)  (0) 2022.09.05
01-2 중앙값(median) 구하기  (0) 2022.09.03
01-1 최댓값/최솟값 구하기  (0) 2022.09.02
Comments