[블루 브리지 컵 준비] [귀속] [C 언어] [ALGO-11 알고리즘 훈련 타일 포장]

ALGO-11 알고리즘 트레이닝 타일 깔기
시간 제한: 1.0s 메모리 제한: 512.0MB
키워드:반복
문제 설명
길이가 N(1<=N<=10)인 마루가 있는데 두 가지 다른 타일을 정한다. 하나는 길이가 1이고 다른 하나는 2로 수량에 제한이 없다.이 길이를 N으로 깔려면 모두 몇 가지 다른 깔법이 있습니까?예를 들어 길이가 4인 지면은 모두 다음과 같은 5가지 포장법이 있다. 4=1+1+1+14=2+1+14=1+2+14=1+1+24=2+2 프로그래밍은 상술한 문제를 귀속적인 방법으로 풀었다.
입력 형식
단지 하나의 숫자 N으로 마루의 길이를 대표한다
출력 형식
하나의 수를 출력하여 모든 다른 타일을 깔는 방법의 총수를 나타낸다
샘플 입력
4
샘플 출력
5
유사한 줄서서 표를 사는 문제를 분석하다
f(1)=1  (1=1)
f(2)=2  (2=2  2=1+1)
f(3)=3  (3=1+1+1  3=1+2  3=2+1)
바닥 길이가 n인 경우 첫 번째 블록에서 1 또는 2를 선택합니다.
1을 고르면 뒤에 n-1의 길이를 완성해야 하는데,
2를 선택하면 뒤에 완성 n-2의 길이가 있습니다.
그래서 f(n)=f(n-2)+f(n-1).피보나치 수열.경계: f(1)=1, f(2)=2,
참조 코드:
#include
int f(int n){
	int result;
	if(n==1)return 1;
	else if(n==2)return 2;
		else result=f(n-1)+f(n-2);
		return result;
}
int main(){
	int m,n;
	scanf("%d",&n);
	printf("%d",f(n));
	return 0;
}

좋은 웹페이지 즐겨찾기