본문 바로가기
Java & Kotlin/Java

20.11.03 - 연산자 예제

by heekng 2021. 1. 19.
반응형
 

1. 실습 2개를 입력받아 산술연산하세요(+, - , * , /, %)

Scanner sc = new Scanner(System.in); //스캐너 생성

System.out.print("정수1: ");

int num1 = sc.nextInt(); //정수1을 num1에 저장

System.out.print("정수2: ");

int num2 = sc.nextInt(); //정수2를 num2에 저장

while(true){

System.out.print("원하는 연산을 입력해주세요[+, -, *, /] : ");

String choice = sc.next();

if(choice.equals("+")) {

System.out.println(num1+"+"+num2+" = "+(num1+num2));

}else if(choice.equals("-")) {

System.out.println(num1+"-"+num2+" = "+(num1-num2));

}else if(choice.equals("*")) {

System.out.println(num1+"*"+num2+" = "+(num1*num2));

}else if(choice.equals("/")) {

System.out.println(num1+"/"+num2+" = "+(num1/num2));

}else { //정해진 연산기호 외의 입력시 반복문 break;

System.out.println("잘못된 연산기호입니다. 종료합니다.");

break;

}

}


2. 동전교환 프로그램

입력된 액수만큼 500원, 100원 50원 10원짜리 동전으로 교환해 주는 프로그램을 작성

조건 ) 동전의 총개수는 최소화한다, 고액의 동전을 우선적으로 교환해 준다.

Scanner sc = new Scanner(System.in); //스캐너 생성

int result;

System.out.print("금액입력: ");

int money = sc.nextInt(); //액수를 입력받을 변수

if(money >= 500) { //money가 500이상일 경우

result = money/500; //money를 500으로 나눈 몫을 result에 초기화

System.out.println("500원 ==> "+result+"개");

money %= 500; //money를 500으로 나눈 나머지(잔돈)을 money에 초기화 및 저장

}

if(money >= 100) { //money가 100이상일 경우

result = money/100; //money를 100으로 나눈 몫을 result에 초기화

System.out.println("100원 ==> "+result+"개");

money %= 100; //money를 100으로 나눈 나머지(잔돈)을 money에 초기화 및 저장

}

if(money >= 50) { //money가 50이상일 경우

result = money/50; //money를 50으로 나눈 몫을 result에 초기화

System.out.println("50원 ==> "+result+"개");

money %= 50; //money를 50으로 나눈 나머지(잔돈)을 money에 초기화 및 저장

}

if(money >= 10) { //money가 10이상일 경우

result = money/10; //money를 50으로 나눈 몫을 result에 초기화

System.out.println("10원 ==> "+result+"개");

money %= 10; //money를 10으로 나눈 나머지(잔돈)을 money에 초기화 및 저장

}

if(money > 0) { //money에 1원단위의 금액이 남아있을 경우

System.out.println("바꾸지 못한 잔돈 ==> "+money+"원");

}


3. 윤년계산프로그램

조건) 윤년은 4로 나누어 떨어지고 100으로 나누어 떨어지지 않으면 윤년이다, 40으로 나누어 떨어지는 해도 윤년에 포함된다.

Scanner sc = new Scanner(System.in); //스캐너 생성

int year;

while(true) {

System.out.print("윤년인지 확인할 해를 입력[종료 0]: ");

year = sc.nextInt(); //해를 입력받는다. 0 입력시 반복문 종료

if(year == 0) {

System.out.println("입력 종료합니다.");

break;

}else if(year % 4 == 0 && year % 100 != 0) { //입력받은 해가 4의 배수이고 100의 배수가 아닌경우

System.out.println(year+"년(연)은 윤년입니다.");

}else if(year % 400 == 0) { //입력받은 해가 400의 배수인 경우

System.out.println(year+"년(연)은 윤년입니다.");

}else { //윤년이 아닌 경우

System.out.println(year+"년(연)은 윤년이 아닙니다.");

}

}


3. 표준 입력으로 두 실수를 입력 받아 합, 평균을 구하여 출력하는 프로그램, 합과 평균 모두 실수로 출력

Scanner sc = new Scanner(System.in); //스캐너 생성

double num1, num2;

while(true) {

System.out.print("실수 1 입력: ");

num1 = sc.nextDouble(); //실수1 입력

System.out.print("실수 2 입력: ");

num2 = sc.nextDouble(); //실수2 입력

double dSum = num1+num2; //실수1과 실수2의 합을 dSum에 넣는다.

double dAvg = dSum/2; //평균을 dAvg에 넣는다.

System.out.println(num1+"과 "+num2+"의 합: "+dSum+" 평균: "+dAvg);

 

System.out.print("계속하시겠습니까? (Y/N): ");

String con = sc.next();

if(con.equals("y") || con.equals("Y")) {

continue;

}else if(con.equals("n") || con.equals("N")) {

System.out.println("종료합니다.");

break;

}else {

System.out.println("잘못된 입력입니다. 종료합니다.");

break;

}

}


4. 표준 입력으로 두 실수를 모두 정수로 변환하여 합과 평균 모두 실수로 출력

Scanner sc = new Scanner(System.in); //스캐너 생성

double dNum1, dNum2;

int num1, num2;

while(true) {

System.out.print("실수1 입력: ");

dNum1 = sc.nextDouble(); //실수1 입력

System.out.print("실수2 입력: ");

dNum2 = sc.nextDouble(); //실수2 입력

num1 = (int)dNum1; //실수1을 int형으로 형변환하여 num1에 저장 (강제 형변환)

num2 = (int)dNum2; //실수2을 int형으로 형변환하여 num2에 저장 (강제 형변환)

System.out.println("정수로 변환한 두 수의 합: "+((num1+num2)*1.0)+" 곱: "+((num1+num2)/2.0));

//실수형으로 출력하기 위해 연산 후에 *, / 연산을 실수로 (자동 형변환)

System.out.print("계속하시겠습니까? (Y/N): ");

String con = sc.next();

if(con.equals("y") || con.equals("Y")) {

continue;

}else if(con.equals("n") || con.equals("N")) {

System.out.println("종료합니다.");

break;

}else {

System.out.println("잘못된 입력입니다. 종료합니다.");

break;

}

}


5. 무게의 단위인 킬로그램(kg)을 소수로 입력 받아 파운드로 계산하여 소수점 3자리까지 출력하는 프로그램을 작성하시오.

1파운드는 0.453592킬로그램

Scanner sc = new Scanner(System.in); //스캐너 생성

double pound = 0.453592; //1파운드의 kg값 변수에 저장

double kg;

while(true) {

System.out.print("파운드로 단위 변환할 kg입력[실수]: ");

kg = sc.nextDouble(); //kg값 입력

double rPound = kg / pound; //입력받은 kg값을 파운드로 변환하여 rPound에 저장

System.out.printf("결과값: %.3f \n", rPound);

 

System.out.print("계속하시겠습니까? (Y/N): ");

String con = sc.next();

if(con.equals("y") || con.equals("Y")) {

continue;

}else if(con.equals("n") || con.equals("N")) {

System.out.println("종료합니다.");

break;

}else {

System.out.println("잘못된 입력입니다. 종료합니다.");

break;

}

}


6. 문자 하나와 온도를 실수형을 입력 받아 문자가 F나 f이면 입력받은 값을 화씨로 간주하여 섭씨로 바꾸고, 입력 받은 문자가 C나 c이면 입력받은 값을 섭씨로 간주하여 화씨로 바꿔 결과를 출력하는 프로그램을 작성하시오.

F = (9.0 / 5.0 ) * C + 32

C = (5.0 / 9.0 ) * (F - 32)

Scanner sc = new Scanner(System.in); //스캐너 생성

double num1;

String fc;

while(true) {

System.out.print("화씨: F / 섭씨: C : ");

fc = sc.next(); //화씨인지 섭씨인지 입력

System.out.print("변환할 온도: ");

num1 = sc.nextDouble(); //온도 입력

 

if(fc.equals("F") || fc.equals("f")) {

System.out.println("섭씨로 변환한 값: "+((5.0 / 9.0 ) * (num1 - 32)));

}else if(fc.equals("C") || fc.equals("c")) {

System.out.println("화씨로 변환한 값: "+((9.0 / 5.0 ) * num1 + 32));

}else {

System.out.println("잘못된 입력입니다.");

}

 

System.out.print("계속하시겠습니까? (Y/N): ");

String con = sc.next();

if(con.equals("y") || con.equals("Y")) {

continue;

}else if(con.equals("n") || con.equals("N")) {

System.out.println("종료합니다.");

break;

}else {

System.out.println("잘못된 입력입니다. 종료합니다.");

break;

}

}


7. 천만 이하의 정수 하나를 입력 받아 우리가 사용하는 단위인 만, 천, 백, 십, 일 단위로 출력하는 프로그램을 작성하시오.

즉, 입력이 2347653이면 "234만 7천 6백 5십 3입니다."로 출력하세요.

Scanner sc = new Scanner(System.in); //스캐너 생성

int num1;

System.out.print("천만 이하의 정수 입력: ");

num1 = sc.nextInt();

if(num1<=10000000) { //천만 이하일 경우

if(num1 >= 10000) { //10000 이상일 경우

System.out.print(num1 / 10000+"만 "); //10000단위를 출력

num1 %= 10000; //10000으로 나눈 나머지를 num1에 저장

}

if(num1 >= 1000) { //1000 이상인 경우

System.out.print(num1 / 1000+"천 "); //1000단위를 출력

num1 %= 1000; //1000으로 나눈 나머지를 num1에 저장

}

if(num1 >= 100) { //100 이상인 경우

System.out.print(num1 / 100+"백 "); //100단위를 출력

num1 %= 100; //100으로 나눈 나머지를 num1에 저장

}

if(num1 >= 10) { //10 이상인 경우

System.out.print(num1 / 10+"십 "); //10단위를 출력

num1 %= 10; //10으로 나눈 나머지를 num1에 저장

}

if(num1 >= 1) { //1 이상인 경우

System.out.print(num1); //1단위를 출력

}

}else { //천만을 초과할 경우

System.out.println("입력한 수가 천만을 넘습니다.");

}


8. 조건연산자를 이용하여 임의의 달을 입력받아, 이달이 상반기이면 "상반기입니다"를 하반기이면 "하반기 입니다"를 출력하는 프로그램을 작성하시오.

Scanner sc = new Scanner(System.in); //스캐너 생성

int month;

System.out.print("상/한반기 구별할 월 입력[정수]: ");

month = sc.nextInt(); //월 입력받음

if(month >= 7 && month <= 12) { //7~12월일 경우

System.out.println(month+"월은 하반기입니다.");

}else if(month >= 1 && month <= 6) { //1~6월일 경우

System.out.println(month+"월은 상반기입니다.");

}else { //1~12월이 아닌 경우

System.out.println("월은 1월부터 12월까지 있습니다.");

}


9. 네수를 입력받아 가장 큰 수를 구하는 프로그램을 조건 연산자를 이용하여 작성하시오.

Scanner sc = new Scanner(System.in); //스캐너 생성

int num1, num2, num3, num4, result;

System.out.print("비교할 정수1 입력: ");

num1 = sc.nextInt(); //정수1 입력

System.out.print("비교할 정수2 입력: ");

num2 = sc.nextInt(); //정수2 입력

System.out.print("비교할 정수3 입력: ");

num3 = sc.nextInt(); //정수3 입력

System.out.print("비교할 정수4 입력: ");

num4 = sc.nextInt(); //정수4 입력

if(num1 > num2 && num1 > num3 && num1 > num4) { //num1이 나머지 세 수보다 큰 경우

result = num1;

}else if(num2 > num3 && num2 > num4){ //num2가 num1을 제외한 나머지 두 수보다 큰 경우

result = num2;

}else if(num3 > num4) { //num3가 num1과 num2를 제외한 num4보다 큰 경우

result = num3;

}else { //이외의 경우

result = num4;

}

System.out.println("가장 큰 수는 "+result+"입니다.");


10. 표준 입력으로 키와 몸무게를 실수로 입력 받아 다음 조건을 이용하여 정상인지, 비만인지 출력하는 프로그램을 작성하시오.

몸무게 <= (키 - 100) * 0.9 이면 정상 아니면 비만

Scanner sc = new Scanner(System.in); //스캐너 생성

int stature, weight;

System.out.print("키 입력: ");

stature = sc.nextInt(); //키 입력

System.out.print("몸무게 입력: ");

weight = sc.nextInt(); //몸무게 입력

if(weight <= (stature - 100)*0.9) {

System.out.println("정상체중입니다.");

}else {

System.out.println("비만입니다.");

}

System.out.println();


11. 초를 입력받아 시 분 초로 계산하여 출력하는 프로그램

예) 계산할 초는? 12345

Scanner sc = new Scanner(System.in); //스캐너 생성

int time, hour, minute, sec;

System.out.print("초 입력: ");

time = sc.nextInt(); //입력받은 초를 time에 저장

sec = time % 60; //분 단위로 나눈 나머지(초 단위)를 sec에 저장

time /= 60; //초 단위를 제외한 분 단위만 time에 저장

minute = time % 60; //시 단위로 나눈 나머지(분 단위)를 minute에 저장

hour = time / 60; //분 단위를 제외한 시 단위를 hour에 저장

System.out.println(hour+"시간 "+minute+"분 "+sec+"초");

System.out.println();


12. 534자루의 연필을 30명의 학생들에게 똑같은 개수로 나누어 줄 때, 학생당 몇개를 가질 수 있고 최종적으로 몇개가 남는지 구하는 프로그램

Scanner sc = new Scanner(System.in); //스캐너 생성

int pen;

System.out.print("연필의 개수 입력");

pen = sc.nextInt(); //연필의 개수 입력

System.out.println("학생당 연필의 개수: "+(pen/30)+" 남은 연필의 개수: "+(pen % 30));

//연필을 30으로 나눈 몫 (학생당 연필의 개수), 연필을 30으로 나눈 나머지 (남은 연필의 개수)


13. 십의 자리 이하를 버리는 코드 예를 들면 356이며 300이 나올 수 있도록 하는 프로그램

Scanner sc = new Scanner(System.in); //스캐너 생성

int num1, num2;

System.out.print("십의 자리 이하를 버릴 숫자 입력: ");

num1 = sc.nextInt(); // 숫자1 입력

num2 = (num1/100) * 100; //입력받은 숫자를 100으로 나눠 100단위만 남긴 후 100을 곱해 1~99를 삭제

System.out.println(num1+"의 십의자리 이하를 버리면 "+num2+"입니다.");

  •  
반응형