2025/04/13 3

25501번, 재귀의 귀재

https://www.acmicpc.net/problem/25501이 문제는 isPalindrome함수를 활용해서 함수의 반환 값과 recursion 함수의 호출 횟수를 출력하는 문제이다.우선 이 문제에서는 문자열을 사용하므로, stdio.h와 string.h를 불러온다.#include #include 이 문제를 쉽게 풀기 위해서 run_time이라는 전역 변수를 생성한다.int run_time;그 다음 이 문제에서 기본 적으로 준 recursion함수와 isPalindrome함수를 정의한다.int recursion(const char *s, int l, int r){ if(l >= r) return 1; else if(s[l] != s[r]) return 0; else return re..

10870번, 피보나치 수 5

https://www.acmicpc.net/problem/10870이 문제는 n을 주면, n번째 피보나치 수를 구하는 문제이다.우선 이전에 풀었던 문제인 팩토리얼 2를 응용해서 풀거기 때문에, unsigned long int는 그대로 사용하겠다.우선 기본 라이브러리를 불러온다.#include 재귀 함수를 이용해서 풀거기 때문에, fibonaci함수를 생성한다. (a와 b는 이전에 있던 숫자들이다.)(만약 C++이라면, 첫 a와 b를 기본 값으로 설정할 수 있다. a = 0, b = 0)unsigned long int fibonaci(int n, int a, int b);함수 내에서는 n이 0이면 0을 리턴하고, n이 3보다 작으면 a+b를 리턴하고, 전부 아니면 fibonaci(n-1, b, a+b)를 ..

27433번, 팩토리얼 2

https://www.acmicpc.net/problem/27433이 문제는 정수 N을 줄때, N 팩토리얼을 출력하는 문제이다.팩토리얼은 1부터 N까지의 곱을 의미한다. 따라서 5 팩토리얼이면, 5*4*3*2*1=120이다.이 코드를 짜기 전, C에서는 숫자의 범위가 파이썬처럼 무한하지 않기 때문에, 리턴 타입을 unsigned long int로 설정하였다.우선 기본 라이브러리를 불러온다.#include 그 다음 난 재귀함수로 문제를 풀거기 때문에, factorial함수를 생성한다. (unsigned long int는 부호가 없는 long int이기 때문에, 부호 비트가 없어서 더욱 큰 숫자의 범위를 표현할 수 있다.)unsigned long int factorial(int n);함수 내에서는 1보다 n..