728x90
2021/03/08(월)
1-1 Scanner 클래스를 이용하여 원화를 입력받아 달러로 바꾸어 다음 에시와 같이 출력하는 프로그램을 작성하라.
$1=1100원으로 가정하고 계산하라.
1-2 Scanner 클래스를 이용하여 2자리의 정수(0~99사이)를 입력받고, 십의 자리와 1의 자리가 같은지 판별하여 출력하는 프로그램을 작성하라.
2자리수 정수 입력(10~99)>>77
Yes! 10의 자리와 1의 자리가 같습니다.
1-3 Scanner 클래스를 이용하여 정수로 된 돈의 액수를 입력받아 오만 원권, 만 원권, 천 원권, 500원짜리 동전, 100원짜리 동전 50원짜리 동전, 10원짜리 동전, 1원 짜리 동전 각 몇 개로 변환되는지 출력하라.
금액을 입력하시오 >> 65376
오만원권 1매
만원권 1매
천원권 5매
백원 3개
오십원 1개
십원 2개
일원 6개
내 풀이
1-1)
import java.util.Scanner; //Scanner 클래스를 이용하여 2자리의 정수(0~99사이)를 입력받고, 십의 자리와 1의 자리가 같은지 판별하여 출력하는 프로그램을 작성하라.
public class Hw2_1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("원화를 입력하세요(단위 원)>>"); //한국돈 입력 저장
int korMoney = scanner.nextInt();
System.out.println(korMoney+"원은 $"+korMoney/1100.0+"입니다.");
}
}
1-2)
import java.util.Scanner;
public class Hw2_1 {
public static void main(String[] args) {
//Scanner 클래스를 이용하여 2자리의 정수(0~99사이)를 입력받고, 십의 자리와 1의 자리가 같은지 판별하여 출력하는 프로그램을 작성하라.
Scanner scanner = new Scanner(System.in);
System.out.print("2자리수 정수 입력(10~99)>>");
int number = scanner.nextInt(); //10의 자리를 10으로 나눈 몫과 나머지가 같으면 출력
if(number%10 == number/10)
System.out.println("Yes! 10자리와 1의 자리가 같습니다.");
}
}
1-3)
import java.util.Scanner;
public class Hw2_1 {
public static void main(String[] args) {
//Scanner 클래스를 이용하여 정수로 된 돈의 액수를 입력받아
//오만 원권, 만 원권, 천 원권, 500원짜리 동전, 100원짜리 동전 50원짜리 동전, 10원짜리 동전, 1원 짜리 동전 각 몇 개로 변환되는지 출력하라.
Scanner scanner = new Scanner(System.in);
System.out.print("금액을 입력하시오>>");
int money = scanner.nextInt();
//나머지
int reminder = 0;
//몫
int portion =0;
//처음 입력된 money의 값을 50000원으로 나눈 나머지와 몫을 저장
//몫은 지폐의 수가 되고 나머지는 다시 아래 단위로 나눈다
portion = money/50000;
reminder = money%50000;
//만약 50000원권이 1개 이상이면 출력
if(money/50000>=1)
System.out.println("오만원권 "+ portion +"매");
portion = reminder/10000;
reminder = reminder%10000;
if(portion>=1)
System.out.println("만원권 "+ portion +"매");
portion = reminder/1000;
reminder = reminder%1000;
if(portion>=1)
System.out.println("천원권 "+ portion +"매");
portion = reminder/500;
reminder = reminder%500;
if(portion>=1)
System.out.println("오백원 "+ portion +"개");
portion = reminder/100;
reminder = reminder%100;
if(portion>=1)
System.out.println("백원 "+ portion +"개");
portion = reminder/50;
reminder = reminder%50;
if(portion>=1)
System.out.println("오십원 "+ portion +"개");
portion = reminder/10;
reminder = reminder%10;
if(portion>=1)
System.out.println("십원 "+ portion +"개");
portion = reminder/1;
reminder = reminder%1;
if(portion>=1)
System.out.println("일원 "+ portion +"개");
}
}
--> 조금 비효율적인 방법으로 푼거같아서 좀 더 고민해서 배열과 반복문을 사용!
import java.util.Scanner;
public class Hw2_1 {
public static void main(String[] args) {
//Scanner 클래스를 이용하여 정수로 된 돈의 액수를 입력받아
//오만 원권, 만 원권, 천 원권, 500원짜리 동전, 100원짜리 동전 50원짜리 동전, 10원짜리 동전, 1원 짜리 동전 각 몇 개로 변환되는지 출력하라.
Scanner scanner = new Scanner(System.in);
System.out.print("금액을 입력하시오>>");
int money = scanner.nextInt();
//나머지
int reminder = 0;
//몫
int portion =0;
//나눠줘야하는 단위를 배열로 저장
int moneyUnitArray[] = {10000,1000,500,100,50,10,1};
//출력해야하는 단위 배열로 저장
String korMoneyUnitArray[] = {"만원권", "천원권", "오백원", "백원","오십원", "십원", "일원"};
//처음 입력된 money의 값을 50000원으로 나눈 나머지와 몫을 저장
//몫은 지폐의 수가 되고 나머지는 다시 아래 단위로 나눈다
portion = money/50000;
reminder = money%50000;
//만약 50000원권이 1개 이상이면 출력
if(money/50000>=1)
System.out.println("오만원권 "+ portion);
//만원권 부터는 반복이니까 반복문
for(int i =0; i<moneyUnitArray.length;i++) {
portion = reminder/moneyUnitArray[i];
reminder = reminder%moneyUnitArray[i];
if(portion>=1)
System.out.println(korMoneyUnitArray[i] +" "+ portion);
}
}
}
배열로 저장해서 반복문으로 돌리니까 훨씬 짧고 쉽게 코딩 가능
728x90
'코딩 연습장 > JAVA' 카테고리의 다른 글
자바 2장 연습문제(조건문)-3 (0) | 2021.03.18 |
---|---|
자바 2장 연습문제(조건문)-2 (0) | 2021.03.18 |
자바로 코딩해보기 - 문제 : 배열 (0) | 2021.03.16 |
자바로 코딩해보기(기초 10) - 문제 : 클래스 (0) | 2021.03.16 |
자바로 코딩해보기(기초 9) - 문제: 재귀함수 (0) | 2021.03.15 |