很好,红红的一片

P1255 数楼梯

wky_wsy @ 2024-08-01 20:57:12

代码写出来了,然后就十分正常的全WA了没有然后了。
so,请大神支招 虽然代码可能全错

#include <iostream>
using namespace std;
int main(){
    int l,l1,l2;
    long long c=1;
    cin>>l;
    l1=l;
    l2=l;
    if(l==1) cout<<'1';
    else{
        for(int i=0;i<l;i++){
            if(l1<=0||l2<=0) break;
            else if(l>2){
                c*=2;
                l1--;
                l2-=2;
            }
            else{
                c++;
                l1--;
            }
        }
    }
    cout<<c;
    return 0;
}

by Ahws_rwhy @ 2024-08-01 20:59:31

@wky_wsy 大哥,这题是用递归做


by syman_liu @ 2024-08-01 21:13:10

@wky_wsy 这题需要使用高精度(__int128也要爆)


by wky_wsy @ 2024-08-01 21:15:13

@rwhy
你觉得我有可能会递归吗????
我**GESP3级都考不过,你觉得我会递归??
如果我真会递归干嘛要来问


by Ahws_rwhy @ 2024-08-01 21:15:50

@wky_wsy 再说你连样例都过不去


by syman_liu @ 2024-08-01 21:18:08

这是小奥题,不需要递归,递推即可:

a_n = a_{n - 1} + a_{n - 2}

by wky_wsy @ 2024-08-01 21:22:19

@syman_liu
看不懂


by Mr_Terminator @ 2024-08-01 21:45:54

@wky_wsy 递归教你。其实定义不算啥严格东西,就是函数自我调用(例如 int link(int now,char c) 函数里面写个 return link(fail[now],c);),当是递推时的好了。以后你学树和图的 DFS 时候这个相当好用

验证码7777祭


by Mr_Terminator @ 2024-08-01 21:47:11

@Mr_Terminator 这题就是 int ans(int now) 里面除了边界以外 return ans(now-2)+ans(now-1); 。边界千万别忘判,否则之后内存条会叫苦不迭


by wky_wsy @ 2024-08-01 21:47:44

@Mr_Terminator
您别说我甚至连递推都不会
估计我没救了。


by Mr_Terminator @ 2024-08-01 21:48:15

@Mr_Terminator 对了这题用递归只能过部分分,自己想想原因。想好了之后你可以上浏览器搜“记忆化搜索”


| 下一页