大佬们可以帮我看一下哪里出问题了吗?只有35分
查看原帖
大佬们可以帮我看一下哪里出问题了吗?只有35分
593001
Langrange2021楼主2023/3/28 14:24
#include<iostream>
#include<cstring>
using namespace std;
int max(int a, int b)
{
    if (a > b)
    return a;
    else
    return b;
}
int min(int a, int b)
{
    if (a < b)
        return a;
    else
        return b;
}
int main()
{
    int count = 0;
    char a[501], b[501];
    int s[503];
    for (int i = 0; i < 503; i++)
        s[i] = -1;
    cin >> a >> b;
    for (int i = 0; i < min(strlen(a), strlen(b)); i++)
    {
        int sum = (int)a[i] - 48 + (int)b[i] - 48;
        s[i] = sum % 10;
        s[i + 1] = sum / 10;
    }
    if (strlen(a) > strlen(b))
    {
        s[min(strlen(a), strlen(b))] += (int)a[min(strlen(a), strlen(b))] - 48;
    }
    else
    {
        s[min(strlen(a), strlen(b))] += (int)b[min(strlen(a), strlen(b))] - 48;
    }
    for (int i = min(strlen(a), strlen(b))+1; i < max(strlen(a), strlen(b)); i++)
    {
        if (strlen(a) > strlen(b))
        {
            s[i] += (int)a[i] - 48+1;
        }
        else
            s[i] += (int)b[i] - 48+1;
    }
    for (count = 0; count < 503; count++)
    {
        if (s[count] == -1)
        {
            count--;
            break;
        }
    }
    for (int i = count; i >= 0; i--)
    {
        cout << (char)(s[i] + 48);
    }
    return 0;
}

我是初学者,这个高精度算法是我自己写的

2023/3/28 14:24
加载中...