HDU 2041 슈퍼 계단 (푸 시 + 타 표)

슈퍼 계단
Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 46422    Accepted Submission(s): 23656
Problem Description
한 계단 은 모두 M 급 이 고 처음에 당신 은 1 급 에 있 었 습 니 다. 만약 에 매번 1 급 이나 2 급 만 올 라 갈 수 있다 면 M 급 에 올 라 가 야 합 니 다. 모두 몇 가지 방법 이 있 습 니까?
 
Input
입력 데 이 터 는 먼저 하나의 정수 N 을 포함 하고 테스트 인 스 턴 스 의 개 수 를 나타 내 며 N 줄 의 데 이 터 를 표시 합 니 다. 각 줄 은 하나의 정수 M (1 < = M < = 40) 을 포함 하여 계단 의 급 수 를 표시 합 니 다.
Output
모든 테스트 인 스 턴 스 에 대해 서 는 다른 주 행 법의 수량 을 출력 하 십시오.
Sample Input

   
   
   
   
2 2 3

Sample Output

   
   
   
   
1 2

 
Author
lcy
 
Source
2005 실험 반 단기 시험 
문제 풀이: 푸 는 문제.앞의 몇 개 수 는 1, 1, 2, 3.........................................................................그래서 f (5) = f (4) + x;x 는 다른 걷 는 방법 을 나타 낸다. 5 급 에 이 르 렀 을 때 두 걸음 을 걷 지 않 으 면 한 걸음 을 걷 는 것 이다. 그래서 f (5) = f (4) + f (3);뒤의 유사 성 때문에 피 보 나치 수열 f (n) = f (n - 1) + f (n - 2) 입 니 다.
AC 코드:
#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include<cstdlib>
#include<iomanip>
#include<algorithm>
#include<time.h>
typedef long long LL;
using namespace std;
int main()
{
	int N=0,M=0,i=0,sum=0;
	int a[41]={0};
	scanf("%d",&N);
	a[1]=1;
	a[2]=1;
	for(i=3;i<=40;i++)
	{
		a[i]=a[i-1]+a[i-2];
	} 
	while(N--)
	{
		scanf("%d",&M);
		printf("%d
",a[M]); } return 0; }

좋은 웹페이지 즐겨찾기