日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

爬楼梯

發布時間:2023/12/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 爬楼梯 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

描述

?

在你面前有一個n階的樓梯,你一步只能上1階或2階。
請問計算出你可以采用多少種不同的方式爬完這個樓梯。

?

輸入

?

一個正整數,表示這個樓梯一共有多少階

?

輸出

?

一個正整數,表示有多少種不同的方式爬完這個樓梯

?

輸入樣例

5
10

輸出樣例

8
89

?

思路分析:

本題是個很明顯的斐波拉契數列問題,根據推到可快速得到答案,現提供另外一個思路,就是實際上我們是對1,2,在n級臺階,相當于n個位置做全排列,可以根據整個1,2的個數進行全排列然后求和;

參考代碼:

public static long fullPermutations(int a, int b, int c){long sum = 1;if(b < c){int temp = b;b = c;c = temp;}//計算全排個數for(int i=a; i>b;i--){sum *= i;}for(int i=2; i<=c;i++){sum /= i;}return sum; }private static String solution(String line) {// 在此處理單行數據int boundary = Integer.valueOf(line);long result = 0;if(line.equals("1")){return "1";}int len = boundary / 2;int flag = 0;if(boundary % 2 != 0){flag = 1;}//遍歷2的個數,累加for(int i = 0; i<=len; i++){result += fullPermutations2(i + (len-i)*2 + flag , i, (len-i)*2 + flag);}// 返回處理后的結果return result + ""; }

問題:由于使用乘法,當輸入的值較大時,數據可能溢出,可采用BigInteger處理。?

總結

以上是生活随笔為你收集整理的爬楼梯的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。