Java/알고리즘
원금이 두배가 돼 두 두배 두배
티코딩
2022. 11. 19. 01:09
double 타입의 interestRate를 입력받고 두배가 되는 시간(년)을 구한다.
for문으로 비비다가 결국 못하고 레퍼런스를 봤다.
내가 작성한 코드
public int computeWhenDouble(double interestRate){
double won = 1.0;
int year = 0;
double interest = interestRate / 100;
for (int i = 0; won >= 2.0; i++) {
won = won + (won * interest);
year = i;
}
return year;
}
레퍼를 참고한 코드
public int computeWhenDouble(double interestRate){
double won = 1;
double interest = 1 + interestRate / 100;
int year = 0;
while(won < 2){
won = won * interest;
year++;
}
return year;
}
while문을 사용해 간단히 했다. 내가 작성한 코드는 year이 계속 0으로 갔다. 왤까?
레퍼코드를 for문으로 바꿔봤다.
public int computeWhenDouble(double interestRate){
double won = 1;
double interest = 1 + interestRate / 100;
for(int year = 0; won < 2; year++){
won *= interest;
}
return year;
}
이래도 오류가뜬다. return year; 에서 cannot find symbol이 뜬다. 아 대체 뭐가 문젤까? 답답허다
문제에서 while문을 사용하라고도 안했는데..왜지? 이래서 인텔리제이에서 한번해봤다.
public int computeWhenDouble(double interestRate) {
double won = 1;
double interest = 1 + interestRate / 100;
int year;
for (year = 0; won < 2; year++) {
won *= interest;
}
return year;
}
하.
이러니 됐다.
int year;를 먼저 선언해주고, 그다음에 for문을 진행 했더니 됐다. 허무하다. 역시 인텔리제이 짱.
그리고 문제를 내가 이해를 못했던것 같다. won >=2.0 이 아니라 won <2였다. 원금이 두배 이상이 되는 시점이라고 해서 그렇게 했는데...
이해력이 딸리나보다..