본문 바로가기

C

[열혈 C 프로그래밍] 도전! 프로그래밍1

728x90

 2학기도 기어코 시험기간이 와버렸다. 야레야레... 시험쿤 너무한 거 아니냐고~

 

 전과생이라 원래 3학년인데, 2학년 수업 듣고 1학년 과목(C언어) 중에 필전 열려서 같이 듣고 있따. 근데 1학기 때 C로 자료구조 배워서 그런지 if문 for문 공부하는게 너무 시간 아깝다고 생각해서 (사실 그냥 하기 싫었음) 동영상 수업을 하나도 안 들었다. 

 

 후 그래도 시험 공부 하려고 열심히 문제 풀어 보고 있따. 시험 9시간 전에ㅋㅋㅋㅋㅋㅋㅋㅋ 여기서 성적 개판으로 받으면 우짜지ㅜ 일딴 꼬!!!!

 


#도전 1. 

 

#도전 2.

 

#도전 3.

 

#도전 4.

 요긴 모르겟어서 구신님께 여쭤봣는데, for문 조건을 저렇게 쓰다니... 역시 프로그래밍의 세계는 머시써..1!!!!!

 

#도전 5.

 

 

#도전 6.

 

#도전 7.

 이것도 몰라서 구신님께 여쭤봐따... 자료구조 배웟지만 이런 기초적인 프로그래밍도 못하다니...

 

 비트 연산자를 쓴건데, << 연산자의 왼쪽에 있는 수의 x2를 d 오른쪽 숫자만큼 반복한다. 비트를 써서 일반 x보다 훨씬 빠르다고 했던 거 같다.

 

 

#도전 8.

  요기는 자료구조 때 내가 개고생했던 재귀함수. 지금도 잘 모르지만 ㅜㅜ 

 

저거 머리 재귀랑 꼬리 재귀 있었던 거 같은데 왜 기억이 안 나니. 검색하고 왔는데, 꼬리 재귀가 재귀호출을 코드 뒤쪽에 적는 걸 의미한다. 지금 내가 쓴건 5줄 머리 재귀인 것...1!!

else return 2*fun(n - 1);   //꼬리 재귀

 

 꼬리 재귀가 좋은 이유? 함수를 호출하면 호출 스택이라는 게 쌓이는데. 머리 재귀의 경우 함수 호출부터 실행되고, 리턴되면서 각 함수의 연산(여기서는 *2)를 진행하게 된다. 그러니까 함수가 연산을 하며 호출된 자리로 돌아갈 때 해야할 연산이 있따는 거. 하지만 이 연산이 없다면? 스택 오버 플로우나 성능 저하 문제가 반복문 수준이 된다구 한다. 

 

 


 시험 공부 반절 끗~