五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

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

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 數樓梯(斐波那契,高精度)的評論 (共 條)

分享到微博請遵守國家法律
论坛| 岳西县| 德兴市| 高州市| 油尖旺区| 德保县| 贵港市| 嵊州市| 普安县| 广东省| 尼木县| 娄底市| 阿巴嘎旗| 屏南县| 巢湖市| 南皮县| 昌乐县| 金坛市| 奉化市| 霍林郭勒市| 潜江市| 宜春市| 镇宁| 阿拉善左旗| 甘德县| 东方市| 天气| 怀安县| 沽源县| 玉树县| 思茅市| 乌拉特后旗| 当阳市| 余姚市| 麻阳| 镇安县| 湘潭市| 澄江县| 墨竹工卡县| 龙泉市| 马龙县|