본문 바로가기

C언어

C언어 반복함수와 재귀함수

반응형

이제부터 C와 C++ 공부하는 것을 티스토리에 올릴 예정이다.

 

아무래도 나의 진로가 이제 C/C++ 로 정해졌으니 (그 중에서도 C++)

 

이제는 진짜 진지하게 임해야겠다는 생각이 들었다.

 

내 일상은 네이버 블로그에 올리고 이제 티스토리 블로그는 기술블로그로 쓰려고 한다.

 

 

그래서 정보처리기사를 취득하면서 원래 알고 있는 C,자바 + 새롭게 배운 파이썬

 

여기에서 C++을 더 공부하려면 C언어를 좀 더 알아야겠다는 생각이 들었다.

 

추가로 나도 내가 공부하는게 하도 많다보니 정리할 필요성을 느껴서 블로그를 다시 시작했다.

 

이 블로그에서는 말의 깔끔함X, 두서없이 정리 모든것이 통한다.

 

갑자기 A설명하다가 B를 설명할수도 있다.  어찌됐건 내가 공부한거 정리하려고 한거니!!

 

 

 

그래서!! 오늘은 동빈나 유튜버님의 C언어 기초 강의를 다시 들었다. 전부 다 듣진 않고 약간 기억에서 희미해진것들만!

 

반복함수란 무엇이냐면

 

 

 

10을 넣는다치면 i가 0에서 시작이니 처음에 i 가 0 이고 j가 i보다 작거나 같을때 즉, 0일때도 된다는 것이다

그때 j가 1이 돼서 나온다.

 

 

대충 이런 의미다 ㅋㅋ 

 

1 2 는 i가 다시 1로 올라가고 j는 0,1이 나오는데 printf에서 +1을 하니 1 2 가 나온다!

 

 

이게 반복함수이다! (숫자 피라미드)

 

재귀함수란 그럼 무엇일까?

 

재귀함수

 

재귀함수란 자기 영역에서 함수를 다시 쓰는것이다. (여기선 count)

 

그러니까 내가 버거킹에서 새우버거를 시켜서 새우를 앙~ 한입 먹고

 

이 남은 새우로 새우튀김을 해먹는다는 것과 같다.

 

반복 함수와는 다르게 자기 영역에서 계속 쓰니까 뭔가 내가보기에는 더 간결한 모습?

 

ㅎㅎ 그런데 사실 그냥 반복문 쓰는게 나은거같다. 출력은 이렇게 뜨는데

 

 

 

흐음 내가 봐도 그냥 for문으로 하는게 더 나을지도 모르겠다 ㅎㅎ 

 

추가로 조합을 재귀함수로 할 수 있는데

 

 

조합의 뜻은 nCr , n개에서 r을 택한다! 수학과정에서 다들 배웠지요?! 순서를 생각 X!

 

ㅎㅎ

 

 

이번엔 nCr(n-1, r-1) + nCr(n-1,r) 을 이용해서 했다.

 

이게 무슨 말이냐면

 

5C3은 5x4x3 / 3x2x1 = 10이다.

 

즉 4C2 + 4C3 이랑  같다는 소리이다. 4C2 = 4x3/2x1 = 6 + 4 = 10

 

C언어에서 조합 자체를 지원해주는거 같기도 하고? 

 

어쨋든 결과는 이렇게 나왔다. 

10C5는 10x9x8x7x6 / 5x4x3x2x1 = 252이다. 

 

이것도 9C4 + 9C5랑 같다.  126 + 126 이기 때문에

 

 

이상 반복+재귀함수 끝!! 

 

기억이 점점 돌아온다..

반응형

'C언어' 카테고리의 다른 글

C언어 구조체  (0) 2022.07.18
C언어 문자열  (0) 2022.07.18
C언어 포인터  (0) 2022.07.18
C언어 다차원 배열  (0) 2022.07.18
C언어 배열  (0) 2022.07.18