본문 바로가기
C

[C언어]재귀 - 각 자리수의 합

by stdlib.h 2016. 3. 28.


이번문제는 각자리수의 합을 더한것을 구하는 문제이다.

예를들어 12345 가 있다면, 1+2+3+4+5 의 값을 구하는 문제이다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
#include <stdio.h>
 
int dol(int n, int d);
 
int main(void)
{
    int c;
    int d =10;
    scanf("%d", &c);
    printf("각자리의 합 = %d\n", dol(c, d));
}
int dol(int n, int d)
{
    if(n==0)
        return 0;
    else
        return n%d + dol((n-n%d)/10, d);
}

cs


이또한 재귀로 구현할수 있는데,

10으로 나눈 나머지로 1의자리를, 나머지를 빼고 10으로 나누어 또 다음 자리를,,

이런식으로 반복하여 전부 일의자리 숫자로 만들어 더하여 값을 구했다.

'C' 카테고리의 다른 글

C언어] 재귀 - 1부터 N 까지 출력  (0) 2016.03.29
[C언어]재귀 - 삼각형 출력  (0) 2016.03.29
[c언어] 재귀 - 팩토리얼  (0) 2016.03.28
[C언어] 함수 - 계산기  (0) 2016.03.28
2의n승  (0) 2016.03.28