본문 바로가기

language/java 과제

3. [java] 연산자 문제

728x90
반응형
package chapter3;

import java.util.Scanner;

/**
 * 두 정수를 입력받아 큰 수를 작은 수로 나눈 몫과 나머지를 출력하는 프로그램을 만들어 보자. 
 * 임의의 두 정수 a, b에 대하여 ((a+b) + |a-b|)/2는 큰 수, ((a+b) - |a-b|)/2는 작은 수이다. 절대값을 반환하는 메소드는 Math.abs(숫자)이다. 
 * 만약 -3의 절대값을 알아보고 싶으면 Math.abs(-3)이라고 쓰면 3이 반환된다. 이것을 이용하여 만들어보자.
 * 어떤 수를 0으로 나누는 것은 수학적으로 성립하지 않으므로 0을 입력하지 않는다고 가정하고 프로그램을 작성.
 */
public class Ass1 {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		System.out.print("첫 번째 숫자를 입력하세요: ");
		int A = scanner.nextInt();
		System.out.print("두 번째 숫자를 입력하세요: ");
		int B = scanner.nextInt();
		scanner.close();
		
		int Big = ((A+B) + Math.abs(A-B)) / 2;
		int Small = ((A+B) - Math.abs(A-B) ) /2;
		int quo = Big / Small; //몫
		int rem = Big % Small; //나머지
		System.out.println("큰 수를 작은 수로 나눈 몫은" + quo + " 이고, 나머지는" + rem + " 이다.");
	}
}

 

package chapter3;

import java.util.Scanner;

/**
 * 메트로폴리스(거대도시)는 다음과 같은 2가지 조건 중 하나를 만족하여야 한다고 가정한다. 
 * 어떤 도시가 메트로폴리스인지를 알아보는 프로그램을 작성하여 보자.(삼항연산자 사용)
 * 1. 한 나라의 수도이고, 인구가 100만 이상이어야 한다. 
 * 2. 연 소득이 1억 이상이 인구가 50만 이상이어야 한다.
 *
 */

public class Ass2 {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		System.out.print("수도입니까?(수도 : 1, 수도아님: 0)");
		int A = scanner.nextInt();
		
		System.out.print("총 인구는?(단위 : 만)");
		int popul = scanner.nextInt();
		boolean populC_1 = (popul >= 50) ? true : false;
		boolean populC_2 = (popul >= 100) ? true : false;
		
		System.out.print("연소득이 1억 이상인 인구는?(단위 : 만)");
		int income = scanner.nextInt();
		boolean incomeC = (income >= 50) ? true : false;
		scanner.close();
		
		if(populC_1==true && incomeC==true) System.out.println("이 도시는 메트로폴리스입니다.");
		else if(populC_2==true && A ==1) System.out.println("이 도시는 메트로폴리스입니다.");
		else System.out.println("이 도시는 메트로폴리스가 아닙니다.");
	}
}

 

 

package chapter3;

import java.util.Scanner;

/**
 * 입력 연도가 윤년인지 아닌지 확인하는 프로그램을 작성해보자. 
 * 윤년의 조건은 다음과 같다고 가정한다.
 * 윤년은 4의 배수이어야 하고, 100의 배수는 아니어야 한다. 
 * 또한 400의 배수는 무조건 윤년이 된다.
 * 
 */
public class Ass3 {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		System.out.print("윤년인지를 확인할 연도를 입력하세요: ");
		int N = scanner.nextInt();
		scanner.close();
		
		if((N%4==0)&& !(N%100==0) ) System.out.println(N +"년은 윤년입니다.");
		else if(N%400 == 0)System.out.println(N +"년은 윤년입니다.");
		else System.out.println(N + "년은 윤년이 아닙니다.");
	}
}
반응형

'language > java 과제' 카테고리의 다른 글

2. [java] BaseBallGame 만들기  (0) 2021.06.10
1. [java] 변수와 시스템 입력 이용하기  (0) 2021.06.10