◈ n^m 구하기
#include<iostream>
using namespace std;
int getPower(int a,int b){
// n^m을 반환하는 함수
if(b==0) return 1;
return getPower(a,b-1)*a;
}
int main() {
//Please Enter Your Code Here
int n,m;
cin>>n>>m;
cout<<getPower(n,m);
return 0;
}
가장 먼저 함수가 무엇인지 정의를 해야함.
그리고 기저조건의 경우를 생각하자.
n^0 은 1이다.. 이게 기저조건임.
getPower가 된다고 가정하고!!!!!! return getPower(a,b-1)*a; 를 리턴한다.
◈ n 부터 m 까지의 합 구하기
#include <stdio.h>
int getSum(int a, int b){
if(a == b) return a;
else return getSum(a,b-1) + b;
}
int main() {
//Please Enter Your Code Here
int n,m,sum;
scanf("%d %d",&n,&m);
printf("%d",getSum(n,m));
return 0;
}
◈ 각 자릿수의 합
-> 10진수를 입력받아 각 자릿수의 합을 구하라..
위와 같이, 재귀적인 패턴을 파악해야 한다.
파악하기 위해선 작은 단위로 나누어 생각해본다.
#include <stdio.h>
// x의 각 자릿수의 합을 반환하는 함수
int getDigitSum(int n){
if(0<=n && n<=9) return n;
else return getDigitSum(n/10) + (n%10);
}
int main() {
int x;
scanf("%d",&x);
printf("%d",getDigitSum(x));
return 0;
}
◈ 십진수 N을 입력받아 각 자릿수의 합을 출력하시오.
#include <stdio.h>
// x의 각 자릿수의 합을 반환하는 함수
int getDigitSum(int n){
if(0<=n && n<=9) return n;
else return getDigitSum(n/10) + (n%10);
}
int main() {
//Please Enter Your Code Here
int x;
scanf("%d",&x);
printf("%d",getDigitSum(x));
return 0;
}
◈ 이진수 출력하기
#include <stdio.h>
void printBinary(int n){
// n을 이진수로 바꾸어 출력하는 함수
if(n==0) printf("0");
else if(n==1) printf("1");
else{
printBinary(n/2);
printf("%d",n%2);
}
}
int main() {
int x;
scanf("%d",&x);
printBinary(x);
return 0;
}
◈ 팰린드롬 판별
#include <stdio.h>
#include<string.h>
bool isPalindrome(char str[],int start, int end){
// str의 start ~ end 이 팰린드롬이면 true, 아니면 false 반환
if(start == end) return true;
else if(start+1 == end){
if(str[start] == str[end]){
return true;
}else{
return false;
}
}
else{
if(str[start] == str[end]){
return isPalindrome(str,start+1,end-1);
}else{
return false;
}
}
}
int main() {
char str[100],len;
scanf("%s",str);
len = strlen(str);
if(isPalindrome(str,0,len-1)){
printf("YES");
}else{
printf("NO");
}
return 0;
}
'알고리즘' 카테고리의 다른 글
[Algorithm] 프랙탈 수 (0) | 2019.02.06 |
---|---|
[Algorithm] mountain (0) | 2019.02.06 |
[Algorithm] Recursive Function (0) | 2019.02.05 |
[Algorithm] 문자열 압축 (0) | 2019.02.04 |
[Algorithm] 팰린드롬 조사 (0) | 2019.02.03 |