팩토리얼
#include<stdio.h>
int factorial(int n){
if(n==0){
return 1;
}else{
return n * factorial(n-1)
}
}
int main(){
int number = 5;
printf("%d! = %d\n" number, factorial(number));
return 0;
}
/*
5! = 120
*/
파보나치 수열
#include<stdio.h>
int fibonacci(int n){
if(n<=1){
return n;
}else{
return fibonacci(n-1) + fibonacci(n-2);
}
}
int main(){
int num = 10;
for (int i = 0; i < num; i++){
printf("%d~", fibonacci(i));
}
return 0;
}
/*
0~1~1~2~3~5~8~13~21~34~
*/
자리수의 합
#include<stdio.h>
int sumDig(int n){
if(n==0){
return 0;
}else{
return (n%10) + sumDig(n/10);
}
}
int main(){
int number = 12345;
printf("숫자 %d의 자리수 합은 %d입니다.\n" , number, sumDig(number));
return 0;
}
/*
숫자 12345의 자리수 합은 15입니다.
*/
문자열의 길이
#include<stdio.h>
int strLen(char *str){
if(*str == '\n'){
return 0;
}else{
return 1+strLen(str+1);
}
}
int main(){
char myString[] = "Hello, World!";
printf("문자열\"%s\"의 길이는 %d입니다. \n", myString, strLen(myString));
return 0;
}
/*
문자열 "Hello, World!"의 길이는 13입니다.
*/
특정문자의 빈도(개수)
#include<stdio.h>
int charFreq(char *str, char ch){
if(*str == '\n'){
return 0;
}else{
return (*str == ch) + charFreq(str + 1, ch);
}
}
int main(){
char myString[] = "hellow world";
char targetChar = 'l';
printf("문자 '%c'의 빈도는 %d입니다.\n", targetChar, charFreq(myString, targetChar));
return 0;
}
/*
문자 'l'의 빈도는 3입니다.
*/
최대값
#include<stdio.h>
int maxVal(int *arr, int size){
if(size == 1){
return arr[0];
}else{
int max = maxVal(arr, size-1)
return (arr[size-1] > max)? arr[size-1] : max;
}
}
int main(){
int myArray[] = {1,5,3,9,2};
int size = sizeof(myArray)/sizeof(myArray[0]);
print("배열의 최대값은 %d입니다.\n", maxVal(myArray, size));
return 0;
}
/*
문자 'l'의 빈도는 3입니다.
*/