명품 자바 프로그래밍

명품 자바 프로그래밍 2장 실습문제

렛쓰기릿 2023. 9. 24. 00:24

1. 원화 입력받아 달러로 바꾸어 출력해보기. 1달러는 1100원으로 가정.

import java.util.Scanner;

public class Hello {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		System.out.print("원화를 입력하세요(단위 원)>> ");
		int won = scanner.nextInt();
		double dollar = won/1100;
		
		System.out.print(won + "원은 $" + dollar + "입니다.");
		
		scanner.close();
	}
}

 

2. 2자리 정수를 입력받고, 십의자리와 1의 자리가 같은지 판별하여 출력하는 프로그램 작성.

import java.util.Scanner;

public class Hello {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		System.out.print("2자리 수의 정수를 입력하시오(10~99) >> ");
		int num = scanner.nextInt();
		
		if ( (num/10) == (num%10) )
			System.out.println("Yes! 10의 자리 숫자와 1의 자리 숫자가 같습니다.");
		else
			System.out.println("No! 10의 자리 숫자와 1의 자리 숫자가 다릅니다.");
		
		scanner.close();
	}
}

 

3. 정수로 된 돈 액수를 입력받아 각 지폐, 동전 몇개씩으로 변환되는지 출력

import java.util.Scanner;

public class Hello {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		System.out.print("금액을 입력하시오 >> ");
		int amount = scanner.nextInt();
		
		System.out.println("오만원권 : " + amount/50000 + "매");
		amount %= 50000;
		System.out.println("만원권 : " + amount/10000 + "매");
		amount %= 10000;
		System.out.println("천원권 : " + amount/1000 + "매");
		amount %= 1000;
		System.out.println("백원 : " + amount/100 + "개");
		amount %= 100;
		System.out.println("오십원 : " + amount/50 + "개");
		amount %= 50;
		System.out.println("십원 : " + amount/10 + "개");
		amount %= 10;
		System.out.println("일원 : " + amount/1 + "개");
		
		scanner.close();
	}
}

 

4. 정수 3개를 입력받고, 3개의 숫자 중 중간 크기의 수를 출력할 것. 평균값이 아님에 주의할 것.

import java.util.Scanner;

public class Hello {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		System.out.print("정수 3개 입력 >> ");
		int a = scanner.nextInt();
		int b = scanner.nextInt();
		int c = scanner.nextInt();
		int mid;
		
		if ( (b<a && a<c) || (c<a && a<b) )
			mid = a;
		else if ( (a<b && b<c) || (c<b && b<a) )
			mid = b;
		else 
			mid = c;
		
		System.out.println("중간 값은 " + mid);
		
		scanner.close();
	}
}

 

5. 변의 길이를 나타내는 정수 3개를 입력받고, 삼각형을 만들 수 있는지 판별할 것.

import java.util.Scanner;

public class Hello {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		System.out.print("세 변의 길이를 입력하시오 >> ");
		int a = scanner.nextInt();
		int b = scanner.nextInt();
		int c = scanner.nextInt();
		
		if ( (a+b) > c && (a+c)>b && (b+c)>a )
			System.out.println("삼각형의 조건을 충족합니다.");
		else
			System.out.println("삼각형이라고 볼 수 없습니다.");
		
		scanner.close();
	}
}

 

6. 369게임을 작성해보자.

import java.util.Scanner;

public class Hello {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		System.out.print("1~99 사이의 정수를 입력하시오 >> ");
		int a = scanner.nextInt();
		int clap = 0;
		
		if ( (a/10) == 3 || (a/10) == 6 || (a/10) == 9 )
			clap++;
		if ( (a%10) == 3 || (a%10) == 6 || (a%10) == 9 )
			clap++;
		
		switch (clap) {
			case 0: 
				System.out.println("3, 6, 9가 한번도 들어가지 않았습니다.");	
				break;
			case 1:
				System.out.println("박수짝");	
				break;
			case 2:
				System.out.println("박수짝짝");	
				break;
		}
		scanner.close();
	}
}

 

7. 문제 적는거 생략...

import java.util.Scanner;

public class Hello {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		System.out.print("점 (x,y)의 좌표를 입력하시오 >> ");
		int x = scanner.nextInt();
		int y = scanner.nextInt();
		
		
		if ( (100<=x && x<=200) && (100<=y && y<=200) )
			system.out.println("(" + x + "," + y + ")는 사각형 안에 있습니다.");
		else
			System.out.println("입력하신 좌표는 사각형 안에 존재하지 않습니다.");
		
		scanner.close();
	}
}

 

8. 

import java.util.Scanner;

public class Hello {
	
	public static boolean inRect(int x, int y, int rectx1, int recty1, int rectx2, int recty2) {
		if ((x >= rectx1 && x <= rectx2) && (y >= recty1 && y <= recty2))
			return true;
		else
			return false;
	}
	
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		int rectx1 = 100;		int recty1 = 100;
		int rectx2 = 200;		int recty2 = 200;
		
		System.out.print("점 (x1,y1) 의 좌표를 입력하시오 >> ");
		int x1 = scanner.nextInt();		int y1 = scanner.nextInt();
		
		System.out.print("점 (x2,y2) 의 좌표를 입력하시오 >> ");
		int x2 = scanner.nextInt();		int y2 = scanner.nextInt();
		
		boolean clash1 = inRect(x1,y1,rectx1,recty1,rectx2,recty2);
		boolean clash2 = inRect(x2,y2,rectx1,recty1,rectx2,recty2);
		
		if (clash1 == false && clash2 == false)		
			System.out.println("충돌을 피했습니다!");
		else		
			System.out.println("충돌했습니다!");
		
		scanner.close();
	}
}

 

9. 

import java.util.Scanner;

public class Hello {
	
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		System.out.print("원의 중심과 반지름 입력 >> ");
		double cx = scanner.nextDouble();
		double cy = scanner.nextDouble();
		double r = scanner.nextDouble();
		
		System.out.print("점 입력 >> ");
		double x = scanner.nextDouble(); 
		double y = scanner.nextDouble();
		
		double d = Math.sqrt( (cx-x)*(cx-x) + (cy-y)*(cy-y) );
		
		if ( d < r )
			System.out.println("점 (" + x + "," + y + ")은 원 안에 있다.");
		else
			System.out.println("점 (" + x + ", " + y + ")은 원 밖에 있다.");
		
		scanner.close();
	}
}

 

10. 

import java.util.Scanner;

public class Hello {
	
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		System.out.print("첫번째 원의 중심과 반지름 입력 >> ");
		double cx1 = scanner.nextDouble();
		double cy1 = scanner.nextDouble();
		double r1 = scanner.nextDouble();
		
		System.out.print("두번째 원의 중심과 반지름 입력 >> ");
		double cx2 = scanner.nextDouble();
		double cy2 = scanner.nextDouble();
		double r2 = scanner.nextDouble();
		
		double d_between = Math.sqrt( (cx1-cx2)*(cx1-cx2) + (cy1-cy2)*(cy1-cy2) );
		// 두 중심점 사이의 거리를 구한 뒤 그 값(d_between)을 각 원의 반지름을 더한 값(r1+r2)과 비교.
		// d_between보다 r1+r2가 더 크다면 두 원은 무조건 겹치게 됨.
		
		if ( d_between < r1+r2 )
			System.out.println("두 원은 서로 겹친다.");
		else
			System.out.println("두 원은 서로 겹치지 않는다..");
		
		scanner.close();
	}
}

 

11.

if-else문

import java.util.Scanner;

public class Hello {
	
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		System.out.print("달을 입력하세요(1~12) >> ");
		int month = scanner.nextInt();
		
		if (3<=month && month<=5)
			System.out.println("봄");
		else if (6<=month && month<=8)
			System.out.println("여름");
		else if (9<=month && month<=11)
			System.out.println("가을");
		else if (month == 1 || month == 2 || month == 3)
			System.out.println("겨울");
		else		
			System.out.println("잘못 입력");
		
		scanner.close();
	}
}

switch문

import java.util.Scanner;

public class Hello {
	
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		System.out.print("달을 입력하세요(1~12) >> ");
		int month = scanner.nextInt();
		
		switch (month) {
			case 3: case 4: case 5:
				System.out.println("봄");
				break;
			case 6: case 7: case 8:
				System.out.println("여름");
				break;
			case 9: case 10: case 11:
				System.out.println("가을");
				break;
			case 12: case 1: case 2:
				System.out.println("겨울");
				break;
			default:
				System.out.println("잘못 입력");
		}
		scanner.close();
	}
}

 

12. 

if-else문

import java.util.Scanner;

public class Hello {
	
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		System.out.print("연산 >> ");
		int n1 = scanner.nextInt();
		String oc = scanner.next();
		int n2 = scanner.nextInt();
		int result = 0;
		
		scanner.close();	// 스캐너 사용 후 바로 종료
		
		if ( oc.equals("+") )
			result = n1+n2;
		else if ( oc.equals("-") )
			result = n1-n2;
		else if ( oc.equals("/") )
			if (n2 == 0) {
				System.out.println("0으로 나눌 수 없습니다.");
				return; } // return 하지 않으면 Line29의 문장이 출력된다. 
			else
				result = n1/n2;
		else if ( oc.equals("*") )
			result = n1*n2;
		
		System.out.println( n1 + oc + n2 + "의 계산 결과는 " + result );
	}
}

 

switch문

import java.util.Scanner;

public class Hello {
	
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		System.out.print("연산 >> ");
		int n1 = scanner.nextInt();
		String oc = scanner.next();
		int n2 = scanner.nextInt();
		int result = 0;
		
		scanner.close();	// 스캐너 사용 후 바로 종료
		
		switch (oc) {
			case "+" : 
				result = n1+n2;	break;
			case "-" : 
				result = n1-n2;	break;
			case "/" : 
				if (n2 == 0) {
					System.out.println("0으로 나눌 수 없습니다.");
					return; }
				else
					result = n1/n2;		break;
			case "*" :
				result = n1*n2;		break;
		}
		System.out.println( n1 + oc + n2 + "의 계산 결과는 " + result );
	}
}