CodeWars 일백 열 여섯 번째 문제

Updated:

Going to zero or to infinity?

public class Suite {

    public static double going(int n) {
        double sum = 1;
        double factorial = 1;

        while(n > 1) {
            factorial *= n;
            sum += 1 / factorial;
            n--;
        }

        String num = String.valueOf(sum);

        return num.length() > 7 ? Double.valueOf(num.substring(0,8)) : 	Double.valueOf(num.substring(0,num.length()));
    }
}
  • 최근 고1 수학 적인 문제들을 풀어서 어렵지 않아 굳이 포스팅을 하지는 않았는데 이번에는 아래 Best 코드에서 소수점 표현하는 것을 처음 배워서 포스팅한다.
  • 이런 문제들을 풀면 대학시절에 수학이 필요없다고 생각한 내가 참으로 착오가 크다고 생각한다.
  • 어쨌든 공대생이면 수학은 기본 잘해야하는 것이 맞는것 같긴 하다.
public static double going(int n) {
    double result = 1.0;
    double frac = 1.0;
    while (n > 1) {
        frac /= n--;
        result += frac;
    }
    return (int) (result * 1e6) / 1e6;
}