萌新求助

P1255 数楼梯

sary @ 2022-02-17 21:37:45

这道题前六个测试点我过了,但后面四个都wa了,由于测试点下载次数达到了今日上限,没法下载测试数据,自己也没找到bug.求助好心人给一下测试数据或者指出一下我代码错在什么地方,谢谢


by sary @ 2022-02-17 21:38:24

#include "iostream"
using namespace std;
typedef int lar[100];
lar reme[5010]={0};
bool been[5010]={0};
void add(lar &a1,lar &a2,lar &ans)
{
    for (int i = 0; i < 99; ++i) {
        ans[i]+=a1[i]+a2[i];
        ans[i+1]+=ans[i]/10;
        ans[i]=ans[i]%10;
    }
}
void show(lar &show)
{
    int n;
    for (n = 99; show[n]==0 ; n--) {}
    for(;n>=0;n--)
        cout<<show[n];
    cout<<endl;
}
void steps(int n)
{if(n<3)
        return;
    if(!been[n-1])
    {
        steps(n-1);
        been[n-1]= true;
    }
    if(!been[n-2])
    {
        steps(n-2);
        been[n-2]= true;
    }
    add(reme[n-1],reme[n-2],reme[n]);
}
int main()
{   reme[1][0]=1;
    reme[2][0]=2;
    been[0]=been[1]=been[2]= true;
    int n;
    cin>>n;
    if(n==0)
    {
        cout<<0;
        return 0;
    }
    steps(n);
    show(reme[n]);
}

by sary @ 2022-02-17 21:45:36

找到错误了,百思不得其解下想了想是不是数组开小了,果然是.....我傻了


|