要解決這個問題,需要用到概率統計,建立概率統計的算法結構:
首先要選走兩步的臺階,剩下的就是壹步,兩臺階44 /2 = 22,最多22步,分別是0個兩步,壹個兩級,二個,三個...22個兩級,所以是C(22, 0) + C(22,1)+...+C(22,22)的算法, 結果是2的22次冪。對於偶數n = N/2,結果等於2(n次冪)
如果N是奇數,那麽要先計算n=(N-1)/2的步數,再乘以N,結果等於 N * 2(n次冪)
C代表組合的概率數,用循環做
C(6,2) = 6 * 5/(2*1)=15, C(6,3) =6*5*4/(3*2*1)=20,依次類推。必要寫壹個這樣的函數:int Combin(int Arg1, int Arg2){}
int main(){
int Result = 0, i, n, m;
scanf("%d", m); //輸入m
n = m /2; //取階數
m = (m %2 == 0 ) ? 1 : m; //如果偶數,那麽單壹倍數,否則不變
for (i:=0; i <= n; ++i){ Result = Result + Combin(n, i); }
return Result * m;
}