自己都不知道怎么变成只剩个位的代码

P1303 A*B Problem

Her_Lingxiao @ 2020-03-31 22:30:04

我看了很久,但是就是不知道为什么只能输出个位

#include <iostream>
#include <string>
#include <string.h>
using namespace std;
int a[10010]={ 0 },b[10010]={ 0 },c[10010]={ 0 },Len_a = 0,Len_b = 0,Len_c = 0;
char x[10010],y[10010];
void Debug(int pp)
{
    printf("\n\n");
    for(int o = pp;o >= 1; o--)
    {
        cout << c[o];
    }
    printf("\n\n");
}
int main()
{
    scanf("%s\n%s",x,y);
    Len_a = strlen(x);
    Len_b = strlen(y);
    for(int i=1;i<=Len_a;i++)
    {
        a[Len_a-i] = x[i] - '0';
    }
    for(int j=1;j<=Len_b;j++)
    {
        b[Len_b-j] = y[j] - '0';
    }
    //
    for(int i=1;i<=Len_a;i++)
    {
        for(int j=1;j<=Len_b;j++)
        {
            c[i+j-1] += a[i] * b[j];
        }
    }
    #if 0
    Debug(Len_a+Len_b);
    #endif
    //
    Len_c = Len_a + Len_b;
    #if 0
    Debug(Len_c);
    #endif
    for(int i = 1;i <= Len_c;i++)
    {
        c[i] += c[i-1] / 10; 
        c[i-1] %= 10;
    }
    while(c[Len_c] == 0 && Len_c > 1)
    {
        Len_c--;
    }
    for(int o = Len_c;o >= 1; o--)
    {
        cout << c[o];
    }
    return 0;
} 

求助


by tangrunxi @ 2020-03-31 22:33:12

Python他不香吗


by ez_lcw @ 2020-03-31 22:46:19

建议全局变量不要初始化


by ez_lcw @ 2020-03-31 22:46:30

而且你的初始化好像有问题


by 白鲟 @ 2020-03-31 22:48:37

for(int i=1;i<=Len_a;i++)
{
   a[Len_a-i] = x[i] - '0';
}
for(int j=1;j<=Len_b;j++)
{
   b[Len_b-j] = y[j] - '0';
}

这个从1开始<=是不是有点问题啊


by 白鲟 @ 2020-03-31 22:49:06

是不是应该是for(int i=0;i<Len_a;i++)


by 白鲟 @ 2020-03-31 22:49:17

@深附哲学组织


by Hexarhy @ 2020-03-31 22:50:00

风格诡异


by tidongCrazy @ 2020-03-31 23:33:13

scanf("%s\n%s",x,y);

是什么鬼


by Her_Lingxiao @ 2020-04-01 19:06:56

@白鲟 是的是的,谢谢


by 白鲟 @ 2020-04-01 19:08:22

@深附哲学组织 不客气(好像都一天了耶


|