为什么输出和样例一样但洛谷WA

P1255 数楼梯

ZhangP1986 @ 2024-08-23 21:22:18

如标题所示,我代码在本地写好试了试没问题后,就放在洛谷里跑。但是却只AC两个:

我下载了测试点#1看看,再在本地跑,但结果和样例的一样,IDE也试了。

我开始认为是字符串的问题,还写了个字符转数字的函数,但还是不对。 有没有大佬能帮本蒟蒻调一调,附上代码(码风可能有问题,请谅解):

#include<bits/stdc++.h>
using namespace std;
string add(string a,string b)
{
    int x;
    string c;
    for(int i=0;i<max(a.size(),b.size());i++)
    {
        int a1,a2;
        if(i<a.size()) a1=a[a.size()-i-1]-48;
        else a1=0;
        if(i<b.size()) a2=b[b.size()-i-1]-48;
        else a2=0;
        int h=a1+a2+x;
        x=0;
        if(h>9)
        {
            while(h>9)
            {
                x++;
                h-=10;  
            } 
        }
        c=char(h+48)+c;
    }
    if(x!=0)
    {
        while(x>0)
        {
            c=char(x+48)+c;
            x/=10;
        }
    }
    return c;
 } 
int main(){
    long long n;
    cin>>n;
    string a="1",b="2",c;
    if(n==1)
    {
        cout<<1;
        return 0;
    }
    if(n==2)
    {
        cout<<2;
        return 0;
    }
    n-=2;
    while(n--)
    {
        c=add(a,b);
        a=b;
        b=c;
    }
    cout<<c;

}

(大佬们应该看的懂吧~)


by lcy0506 @ 2024-08-23 21:24:58

You need python

n=int(input())
last2=1
last1=2
ans=0
for i in range(2,n):
    ans=last1+last2
    last2=last1
    last1=ans
if n<=2:
    print(n)
else:
    print(ans)

by ZhangP1986 @ 2024-08-23 21:53:54

@lcy0506 Thank you,But Python 的头文件是啥呀


by lcy0506 @ 2024-08-23 21:56:22

@ZhangP1986 python有头文件吗???


by ZhangP1986 @ 2024-08-24 11:39:20

@lcy0506 那为啥编译不过?


by S12816 @ 2024-08-29 18:05:47

@ZhangP1986 Python do not have 头文件


|