등비수열의 합

2023. 8. 27. 23:51코딩 테스트(JAVA)/알고리즘 문제풀이

class Solution {
    public int solution(int n) {
        int firstTerm = 1; // 첫 항
        int commonRatio = 2; // 공비

        int sum = calculateGeometricSeriesSum(firstTerm, commonRatio, n);
        int moduloSum = sum % 1_000_000_007;

        return moduloSum;
    }

    // 등비수열의 합 계산 함수
    public int calculateGeometricSeriesSum(int firstTerm, int commonRatio, int n) {
        int MOD = 1_000_000_007;
        int sum = 0;
        int currentTerm = firstTerm;

        for (int i = 0; i < n; i++) {
            sum = (sum + currentTerm) % MOD;
            currentTerm = (currentTerm * commonRatio) % MOD; // 다음 항으로 이동
        }

        return sum;
    }
}

 

입력: n = 5

 

출력: 31 (1+2+2²+2³+2⁴)

 

'코딩 테스트(JAVA) > 알고리즘 문제풀이' 카테고리의 다른 글

컬렉션 오름차순, 내림차순  (0) 2023.08.27
숫자 뒤집기  (0) 2023.08.23
알고리즘 문제 추천  (0) 2022.04.11