[질문] 매우매우간단한 프로그램인데 소스 간단히 할 방법 없을까요?
팬지
프로그램 실행시 매개변수로 돈의 금액을 입력받아 금액에 해당하는 돈을 종류별로 나타내는프로그램을 작성하시오. 단 돈은 일만원, 천원, 오백원, 백원, 십원, 일원 단위만 있다고 가정한다.
(예) java MoneyTest 37899
일만원권 : 3장
천원권 : 7장
오백원 주화 : 1개
백원주화 : 3개
십원주화 : 9개
일원주화 : 9개
-----------------------------------------------------------
안녕하세요.. 자바에 입문하고 있는 학생입니다.
위에꺼를 while같은 반복문같은거 없이 하급기법(;)으로산술연산자나
비트연산자를 통해서 할 수 있는 방법 없을까요? 우선 제가 한 겁니다.
근데 너무 연산이 많아서 ㄱ-
class javamoney {
public static void main(String args[]) {
int money,a,b,c,d,e,f;
money=Integer.parseInt(args[0]); //금액을 입력받음
a=money/10000; //만원단위 계산
b=(money-a*10000)/1000; //천원단위 계산
c=(money-(a*10000+b*1000))/500; //오백원단위 계산
d=(money-(a*10000+b*1000+c*500))/100; //백원단위 계산
e=(money-(a*10000+b*1000+c*500+d*100))/10; //십원단위 계산
f=(money-(a*10000+b*1000+c*500+d*100+e*10)); //일원단위 계산
System.out.println(일만원권 + a);
System.out.println(일천원권 + b);
System.out.println(오백원주화 + c);
System.out.println(백원주화 + d);
System.out.println(십원주화 + e);
System.out.println(일원주화 + f);
}
}
그리고 연산을 간단하게 해보려고(비트는 열심히 해봤지만 안되네요;) 0.0001하고
소숫점을 버리는식으로 해보려고했는데 소숫점은 어찌버리는지 모르겠네요.;
고로 비트연산자나 실수곱셈을 통해서 더 간단한 소스로 만드는 방법은 없을까요?
언뜻보기엔 간단한데 지금 2시간째 이거만 보고있어요 --;;; 도와주세요 자고싶어요;
-
봄
오.. 이런 방법이 있었네요... 아무래도 연산기법 쪽도 공부해야할듯해요 이런거 볼때마다... 감사합니다
-
스콜피온
^^ 밑에 답글 보삼
-
발랄한그1녀
헙,; 소숫점 버리는 방식은 만원짜리는 구해지는데 나머지가 거시기하네요. string사용해서 십진수로 문자열을 쪼개서 쓰는 방식을 써볼까 하는데... 썬사 홈피하고 친해져야겠네요; 으흑;.;
-
딥체리
double d = 10.2345;
int i = (int) d;
// i = 10 ^_^