请求大佬帮忙看一下哪错了,阿里嘎多
  • 板块P1303 A*B Problem
  • 楼主xiusiku
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/11/30 00:51
  • 上次更新2023/11/30 12:20:26
查看原帖
请求大佬帮忙看一下哪错了,阿里嘎多
1200906
xiusiku楼主2023/11/30 00:51
#include<stdio.h>
#include<string.h>
int chartoint(char c)
{
    return c-'0';
}
char inttochar(int n)
{
    return n+'0';
}
void ride(char num1[],char num2[],char result[])
{
    int len1=strlen(num1);
    int len2=strlen(num2);
    int carry=0;//进位
    int maxlen=len1>len2?len1:len2;
    for(int i=0;i<maxlen;i++)
    {
        int digit1=i<len1?chartoint(num1[len1-1-i]):0;
        int digit2=i<len2?chartoint(num2[len1-1-i]):0;
        int sum=digit1*digit2+carry;
        result[i]=inttochar(sum%10);
        carry=sum/10;//进位
    }
    if(carry>0)
    {
        result[maxlen]=inttochar(carry);
        result[maxlen+1]='\0';
    }
    else
    {
        result[maxlen]='\0';
    }
    int start=0;
    int end=strlen(result)-1;
    while(start<end)
    {
        char temp=result[start];
        result[start]=result[end];
        result[end]=temp;
        start++;
        end++;
    }
}
int main()
{
    char num1[2001];
    char num2[2001];
    scanf("%s%s",num1,num2);
    char result[4001];
    ride(num1,num2,result);
    printf("%s\n",result);
    return 0;
}
2023/11/30 00:51
加载中...