본문 바로가기

분류 전체보기45

C언어]재귀 - N부터 1까지 출력 이 문제는 N을 입력하면 N부터 1까지 역순으로 출력하는 문제이다ㅣ 이를 구현하면 다음과 같다.1234567891011121314151617181920#include void print(int count); int main(void){ int n; scanf("%d", &n); print(n);}void print(int count){ if (count == 0) { return; } else printf("%d\n", count); print(count - 1);}cs 먽먼저 N을 입력하고 이를 전달해서, N 이 0이 될때까지 N을 출력하고 1씩 감소하여 다시 재귀를 한다. 2016. 3. 29.
C언어] 재귀 - 1부터 N 까지 출력 이문제는 N 을 입력하면 1부터 N까지 출력하는 문제이다. 이를 구현한 코드는 다음과 같다.1234567891011121314151617181920#include void print(int start, int count); int main(void){ int n; scanf("%d", &n); print(1,n);}void print(int start, int count){ if (start > count) return; else { printf("%d\n", start); print(start + 1, count); }}Colored by Color Scriptercs처음에 시작인 1을 전달해주었고, 계속 1씩늘여 출력했다. 스타트가 N보다 크면 종료한다. 2016. 3. 29.
[C언어]재귀 - 삼각형 출력 이문제는 N을 입력하면 N 층의 삼각형을 하나씩 늘려가며 출력하는것이다.코드는 다음과 같다. 1234567891011121314151617181920212223242526#include void print(int start, int flag, int count); int main(void){ int n; scanf("%d", &n); print(1,1,n);}void print(int start, int flag, int count){ printf("*"); if (start 2016. 3. 29.
[C언어]재귀 - 각 자리수의 합 이번문제는 각자리수의 합을 더한것을 구하는 문제이다.예를들어 12345 가 있다면, 1+2+3+4+5 의 값을 구하는 문제이다. 12345678910111213141516171819 #include 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);}Colored by Color Scriptercs 이또한 재귀로 구현할수 있는데,10으로 나눈 나머지로 1의자리를, 나머지를 빼고 10으로 나누어 또 다음 자리를,,이런식으로.. 2016. 3. 28.