본문 바로가기
Language/C

C언어 함수

by 천뱅 2024. 10. 2.

 

팩토리얼 

#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입니다.
*/

'Language > C' 카테고리의 다른 글

C언어 포인터  (6) 2024.10.02