求助,只过了第一个点

P1303 A*B Problem

gylgygdhg @ 2023-01-08 09:08:33

样例和自己设的数都过了 下方代码

#include <bits/stdc++.h>
using namespace std;
long long a[2001],b[2001],x,s,ans[4000001],y,m=4000000,so;
char n;
bool f=true;
int main (){
    while(true){
        n=getchar();
        if(n<'0' || n>'9'){
            break;
        }
        else{
            a[x]=n-48;
            x++;
        }
        if(n=='0' && f){
            f=true;
        }
        else{
            f=false;
        }
    }
    if(f){
        cout<<0;
        return 0;
    }
    f=true;
    while(true){
        n=getchar();
        if(n<'0' || n>'9'){
            break;
        }
        else{
            b[y]=n-48;
            y++;
        }
        if(n=='0' && f){
            f=true;
        }
        else{
            f=false;
        }
    }
    if(f){
        cout<<0;
        return 0;
    }
    for(int i=0;i<x;i++){
        for(int j=0;j<y;j++){
            s=b[y-j-1]*a[x-i-1];
            ans[m-i-j]+=s%10;
            ans[m-i-j-1]+=ans[m-i-j]/10;
            ans[m-i-j]=ans[m-i-j]%10;
            ans[m-i-j-1]+=s/10;
        }
    }
    while(ans[so]==0){
        so++;
    }
    for(int i=so;i<=m;i++){
        cout<<ans[i];
    }
    return 0;
}

by ダ月 @ 2023-01-08 09:17:53

有没有一种可能,你的输入方式是形如a b

而题目要求:

a
b

by ダ月 @ 2023-01-08 09:18:01

@gylgygdhg


by ダ月 @ 2023-01-08 09:18:41

自己看输入方式


by gylgygdhg @ 2023-01-08 10:21:14

@我叫啥名字 这两种输入方式没什么区别吧,都是分别进行两次输入中间是\n还是 应该不影响long long 的输入的吧.


by gylgygdhg @ 2023-01-08 10:33:47

@我叫啥名字 无论是空格还是换行应该都会break


by gylgygdhg @ 2023-01-08 10:50:17

@我叫啥名字 只要不是0至9都会进行下一次读入


by ダ月 @ 2023-01-08 11:09:36

@gylgygdhg 反正测试的时候按题目输入你的代码只会输出0,间隔空格输入代码输出是没问题的,你可以自己调试一下。


by __ikun__horro__ @ 2023-01-08 18:16:43

为啥不用py做

a=int(input())
b=int(input())
print(a*b)

by hct_ @ 2023-01-09 21:42:06

@ikunhorro__ 人家用不用关你啥事


|