第8,9,10个测试集WA
查看原帖
第8,9,10个测试集WA
911854
fuwan楼主2023/1/9 14:42
#include<stdio.h>
#include<string.h>
int N;

void reverse(char*);
void init(char*);
void back(char*);
void add(char*,char*,char*);

int main()
{
    char a[202]={0},b[202]={0},c[203]={0};
    scanf("%d%s%s",&N,a+1,b+1);
    a[0]=strlen(a+1);
    b[0]=strlen(b+1);
    init(a);
    init(b);
    reverse(a);
    reverse(b);
    //back(b);
    //printf("%s",b+1);
    add(a,b,c);
    back(c);
    reverse(c);
    printf("%s",c+1);
    return 0;
}
void init(char *s)
{
    int i;
    for(i=1;i<=s[0];i++)
    {
        if(s[i]>='0'&&s[i]<='9')
            s[i]-='0';
        else s[i]=s[i]-'a'+10;
    }
}
void reverse(char *s)
{
    int i;
    char t;
    for(i=1;i<=s[0]/2;i++)
    {
        t=s[i],s[i]=s[s[0]-i+1],s[s[0]-i+1]=t;
    }
}
void add(char *a,char *b,char *c)
{
    int i,n=a[0]>b[0]?a[0]:b[0];
    for(i=1;i<=n;i++)
    {
        c[i]=c[i]+a[i]+b[i];
        c[i+1]=c[i+1]+c[i]/N;
        c[i]%=N;
    }
    if(c[i]>0)
        c[0]=i;
    else c[0]=n;
}
void back(char *s)
{
    int i;
    for(i=1;i<=s[0];i++)
    {
        if(s[i]>=0&&s[i]<=9)
            s[i]+='0';
        else s[i]+='a'-10;
    }
}

一直找不到哪出了问题

2023/1/9 14:42
加载中...