iT邦幫忙

DAY 17
0

學習技術筆記系列 第 12

Day17[C++]實作爬樓梯(遞迴版)

  • 分享至 

  • xImage
  •  

題目:爬樓梯,往上爬一次可爬1步或是2步,不可往下走

輸入:樓梯階數

輸出:印出可能的步數,及總共的排列可能數目

#include <iostream>

using namespace std;
int len = 0,n =0 ,sum = 0,*step;
void printSum() {
cout << "走法 = ";
for (int i = 0; i < len; i++)cout <<step[i]<<" ";
cout <<endl;
}
void compute(int stair) {
if (stair < 0) return;
if (stair == 0) {
printSum();
sum++;
return;
}
for (int i = 1; i <= 2; i++) {
step[len] = i;
len++;
compute(stair - i);
len--;
}
}
int main () {
cout << "請輸入樓梯階層";
cin >> n;
if (n!=0){
step = new int[n];
compute(n);
cout << "共有 :"<< sum << "走法"<< endl;
}
}


上一篇
Day16[C++]實作爬樓梯(非遞迴版)
下一篇
Day18[C++]排隊購票
系列文
學習技術筆記22
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言