hdu.2042 超級樓梯

天天掉頭髮發表於2020-08-22

 

這種遞迴來寫,除了遞迴我也想不到怎麼寫了

AC程式碼:

#include<iostream>
using namespace std;
int x[41];//打表,不打表我不用想就知道過不了,再水也是ACM的題。
int resum(int n)
{
  if(n==1)//第一個階梯多少種方法
  return 0;

  if(n==2)//第二個階梯多少種方法
  return 1;

  if(n==3)//第三個階梯多少種方法
  return 2;

  if(x[n]>0)//檢視錶裡有無資料
  return x[n];

  if(x[n]==0)//為0表示沒有,就計算,然後賦值儲存。
  x[n]=resum(n-1)+resum(n-2);//第N步就等於他上一步怎麼走方法總和

  return x[n];
}

int main()
{

for(int i=0;i<41;i++)
  x[i]=0;//置0

int n;
int m;
cin>>m;
while(m--)
{
  cin>>n;
  cout<<resum(n)<<endl;
}


return 0;
}

 

(PS:遞迴加打表,真香)

相關文章