最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

P1255 數樓梯(斐波那契,高精度)

2023-01-27 22:59 作者:薄荷硬糖醬  | 我要投稿

樓梯有 N?階,上樓可以一步上一階,也可以一步上二階。

編一個程序,計算共有多少種不同的走法。

輸入格式

一個數字,樓梯數。

輸出格式

輸出走的方式總數。

輸入輸出樣例

輸入

4

輸出?

5

  • 對于?60%60%?的數據,N50;

  • 對于?100%100%?的數據,1N5000。

時間限制1.00s

內存限制128.00MB

思路:

斐波那契數列的第50位是20365011074(11位數)

long long的數據范圍是-2147483648 到 2147483647(10位數)

明顯可以看出這道題不是簡單的遞歸/數組求斐波那契數列,要用到高精度算法

高精度算法(這里只說加法,b站上有很多詳細視頻)

主要代碼:

c[i]+=a[i]+b[i];

c[i+1]=c[i]/10;

c[i]=c[i]%10;

斐波那契數列的應用是從畫圖得知的規(guī)律

第一個臺階有1種可能;

第二個臺階有2種可能;

第三個臺階有3種可能;

第四個臺階有5種可能;……


易錯點:

  1. ans數組不能是long long類型不然會超出內存限制

  2. 看清楚不能用遞歸和數組求這道題

  3. 注意數組的序號不要寫錯了,自己的代碼是從0開始的

代碼:

#include <iostream>

using namespace std;

int ans[5005][5005],len=1;

void jf(int k)

{

? ? for(int i=0;i<len;i++) ans[k][i]=ans[k-1][i]+ans[k-2][i];

? ? for(int i=0;i<len;i++)

? ? ? ? if(ans[k][i]>=10){

? ? ? ? ? ? ans[k][i+1]+=ans[k][i]/10;

? ? ? ? ? ? ans[k][i]=ans[k][i]%10;

? ? ? ? ? ? if(ans[k][len])len++;

? ? ? ? }

}

int main()

{

? ? int n;

? ? cin>>n;

? ? ans[0][0]=1,ans[1][0]=2;

? ? for(int i=2;i<n;i++) jf(i);

? ? for(int i=len-1;i>=0;i--)cout<<ans[n-1][i];

}



P1255 數樓梯(斐波那契,高精度)的評論 (共 條)

分享到微博請遵守國家法律
沧源| 顺平县| 佛学| 靖宇县| 东海县| 绍兴县| 阿克苏市| 和顺县| 营山县| 兖州市| 太仓市| 错那县| 松溪县| 曲松县| 博乐市| 汽车| 盈江县| 衡阳县| 江陵县| 徐汇区| 铅山县| 哈巴河县| 梅州市| 昌邑市| 巨野县| 镇平县| 广南县| 凉城县| 黄陵县| 顺昌县| 嘉荫县| 阿拉善左旗| 郑州市| 秀山| 浙江省| 广西| 铁岭县| 罗平县| 仪征市| 东源县| 田东县|