Java 각 자리수 합계 구하기

입력 된 숫자의 각 자리수 합계 구하기

import java.util.Arrays;

public class SumEachNumber {
    public int solution(int n) {

        // 내가 만든코드1
//        int answer = Arrays.asList(Integer.toString(n).split(""))
//                .stream()
//                .map(Integer::parseInt)
//                .mapToInt(Integer::intValue)
//                .sum();

        // 내가 만든코드 2
//        int answer = Arrays.asList(Integer.toString(n).split(""))
//                .stream()
//                .map(Integer::parseInt)
//                .reduce((i, j) -> i + j)
//                .get();

        // 다른 개발자가 만든 코드
        int answer = 0;

        while (n > 0) {
            answer += n % 10;
            n = n / 10;
        }

        return answer;
    }
}

테스트

import org.junit.jupiter.api.Test;

import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;

class SumEachNumberTest {

    @Test
    void sumEachNumberTest() {
        SumEachNumber quiz = new SumEachNumber();

        assertThat(quiz.solution(123), is(6));

        assertThat(quiz.solution(987), is(24));

        assertThat(quiz.solution(0), is(0));

        assertThat(quiz.solution(100000000), is(1));

        assertThat(quiz.solution(10), is(1));

        assertThat(quiz.solution(01), is(1));
    }
}

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다