HackerRank | Recursion - Recursive Digit Sum
4190 ワード
質問する
https://www.hackerrank.com/challenges/recursive-digit-sum/problem?h_r=internal-search
最初に与えられた文字列をk回接続し、生成された数字が1桁になるまで各数字を加算する.SuperDigitは次のように計算されます.
問題を解く
文字列が1の場合は、を返します.(終了条件)
各文字列の数字にkを乗じます.
文字列の長さが1になるまで、各文字列を加算してスーパー数値を求めます.
コード#コード#
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);
}
}
結果
Reference
この問題について(HackerRank | Recursion - Recursive Digit Sum), 我々は、より多くの情報をここで見つけました https://velog.io/@dpfls0922/HackerRank-Recursion-Recursive-Digit-Sumテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol