#include <stdio.h>
//함수 마다 어떤 기능을 하는지 설명 적어두는 습관!
int getPower(int n, int m){
// n^m 을 구하는 재귀함수
// 기저 조건
if(m == 0)
return 1; // 0승은
else
return getPower(n, m-1) * n;
}
int main() {
int n, m;
scanf("%d %d", &n, &m);
printf("%d\n", getPower(n,m));
return 0;
}
- N 부터 M까지의 합 구하기
#include <stdio.h>
int getSum(int n,int m){
if(n == m){
return n;
}
else
return getSum(n, m-1) + m;
}
int main() {
int n, m;
scanf("%d %d", &n, &m);
printf("%d\n", getSum(n,m));
return 0;
}
#include <stdio.h>
int getDigitSum(int x){
if( x>=0 && x<=9)
return x;
else
return getDigitSum(x/10) + x%10;
}
int main() {
int x;
scanf("%d", &x);
printf("%d\n", getDigitSum(x));
return 0;
}
#include <stdio.h>
void printBinary(int x){
if(x == 0){
}
else{
printBinary(x/2);
printf("%d", x%2);
}
}
int main() {
int x;
scanf("%d", &x);
printBinary(x);
return 0;
}
-> 뒤집어도 똑같은 문자열
재귀적 패턴 -> 문자열 양끝을 제왼한 내부가 펠린드롬인 경우 현재 양끝 문자가 같으면 전체도 펠린드롬이다
ex> a(bcdcb)a
#include <string.h>
bool isPalindrome(char myString[], int start, int end){
// myString의 start-end가 펠린드롬이면 true,
// 아니면 false를 반환하는 함수
if(start >= end) // 이 상황까지왔으면 펠린드롬임
return true;
else{
if(myString[start] == myString[end])
return isPalindrome(myString, start+1, end-1);
else
return false;
}
}
int main() {
char myString[100];
scanf("%s", myString);
int len = strlen(myString);
if(isPalindrome(myString, 0, len-1))
printf("Yes\n");
else
printf("No\n");
return 0;
}