求助大佬!!很急 在线等

P1255 数楼梯

XDYZ_N @ 2024-05-08 19:48:30

我觉得递推式没问题呀 求助大佬

#include<bits/stdc++.h>
using namespace std;

 int main()
 {
    int f[5005] = {0,1,2};
    int n;
    cin>>n;
    if(n == 0)
    {
        cout<<0;
        return 0;
    }
    if(n!=1&&n!=2)
    {
        for(int i = 3;i<=n;i++)
        {
            f[i] = f[i-1]+f[i-2];
        } 
    }

    cout<<f[n];
    return 0;
 }

by _czx6666_ @ 2024-05-08 19:50:12

得高精~~~ @XDYZ_N


by _czx6666_ @ 2024-05-08 19:50:47


by _czx6666_ @ 2024-05-08 19:51:01

求关


by XDYZ_N @ 2024-05-08 19:51:07

@czx6666 哦 我还以为直接算就行 谢谢大佬


by 3_14 @ 2024-05-08 19:59:21

@XDYZ_N 我的代码

就是一个斐波拉契

#include<bits/stdc++.h>
using namespace std;
string add(string a,string b){
    string ans;
    int lena=a.size(),lenb=b.size();
    if(lena<lenb)
        for(int i=0;i<lenb-lena;i++)a='0'+a;
    else
        for(int i=0;i<lena-lenb;i++)b='0'+b;
    lena=a.size();
    int k=0,u=0;
    for(int i=lena-1;i>=0;i--){
        u=a[i]+b[i]+k-'0'-'0';
        k=u/10;
        u%=10;
        ans=to_string(u)+ans;
    }
    if(k){
        ans=to_string(k)+ans;
    }
    return ans;
}
string to(int n){
    if(n<=1)
        return "1";
    string a="1",b="1",c;
    for(int i=1;i<n;i++){
        c=add(a,b);
        a=b;
        b=c;
    }
    return c;
}
int main(){
    int n;
    cin>>n;
    cout<<to(n)<<'\n';
    return 0;
}

by XDYZ_N @ 2024-05-08 20:06:43

66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666


|