HackerRank | Recursion - Recursive Digit Sum
문제
https://www.hackerrank.com/challenges/recursive-digit-sum/problem?h_r=internal-search
처음 주어진 문자열을 k번 연결하여 생성된 숫자가 한 자리 숫자가 될 때까지 각 자릿수를 더한다. Super Digit은 다음과 같이 계산된다.
문제 풀이
-
문자열이 1이면 리턴한다. (종결조건)
-
각 문자열의 숫자를 합하고 k번 곱해준다.
-
문자열의 길이가 1이 될 때까지 각 문자열을 더해 super digit을 구한다.
코드
int superDigit(char* n, int k) {
int len = strlen(n);
long long int sum = 0;
if(len==1) return *n-'0';
else
{
for(int i=0; i<len; i++)
sum += n[i]-'0';
sum *= k;
char *str = malloc(sizeof(char)*(len+1));
sprintf(str, "%lld", sum); // %d를 지정하여 정수를 문자열로 저장
return superDigit(str, 1);
}
}
결과
Author And Source
이 문제에 관하여(HackerRank | Recursion - Recursive Digit Sum), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dpfls0922/HackerRank-Recursion-Recursive-Digit-Sum저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)