이번문제는 각자리수의 합을 더한것을 구하는 문제이다.
예를들어 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); } |
이또한 재귀로 구현할수 있는데,
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 |