입력: 제 1항, 제 2항, 제 3항, 구하려는 항의 수(N) 출력: 제 N항
#include <stdio.h>
int a,b,c,n;
int new_fibo(n){
if(n==1){
return a;
}else if(n==2){
return b;
}else if(n==3){
return c;
}else{
return new_fibo(n-1)+new_fibo(n-3);
}
}
int main() {
scanf("%d %d %d %d",&a,&b,&c,&n);
int ret=new_fibo(n);
printf("%d",ret);
return 0;
}
코드 설명
a,b,c,n을 입력받는다.
new_fibo()
함수 : n==1이면 a를 리턴, n==2이면 b를 리턴, n==3 이면 c를 리턴한다.
3보다 큰 수에 대해서는 new_fibo(n-1)+new_fibo(n-3)
을 재귀적으로 리턴한다.
입력: 제 1항, 제 2항, 제 3항, 구하려는 항의 수(N) 출력: 제 N항
#include <stdio.h>
int a,b,c,n;
int main() {
scanf("%d %d %d %d",&a,&b,&c,&n);
int ret=0;
if(n==1){
ret=a;
}else if(n==2){
ret=b;
}else if(n==3){
ret=c;
}else{
int tmpSum=0;
for(int i=4; i<=n;i++){
tmpSum=a+c;
a=b;
b=c;
c=tmpSum;
}
ret=tmpSum;
}
printf("%d",ret);
return 0;
}
코드설명