51Nod-1027-大数乘法

给出2个大整数A,B,计算A*B的结果。
Input
第1行:大数A
第2行:大数B
(A,B的长度 <= 1000,A,B >= 0)
Output
输出A * B
Input示例
123456
234567
Output示例
28958703552

水题,不多解释了,就是字符串的处理!

代码C:

#include <stdio.h>
#include <string.h>
#define _MAX 1001

void Carrying(int tag,int i,int j,int *p);
int main(int argc, const char * argv[])
{
    int product[2 * _MAX],i=0,j=0,numOneLen,numTwoLen,tag;
    char numOne[_MAX],numTwo[_MAX];
    memset(product, 0, sizeof(int) * 2 * _MAX);                    //初始化product数据为0
    scanf("%s %s",numOne,numTwo);                    //存数据

    numOneLen=(int)strlen(numOne);
    numTwoLen=(int)strlen(numTwo);

    //数据逆序
    for (i=0; i<numOneLen/2; i++)
    {
        tag=numOne[i];
        numOne[i]=numOne[numOneLen-1-i];
        numOne[numOneLen-1-i]=tag;
    }
    for (i=0; i<numTwoLen/2; i++)
    {
        tag=numTwo[i];
        numTwo[i]=numTwo[numTwoLen-1-i];
        numTwo[numTwoLen-1-i]=tag;
    }

    //逐位相乘
    for (i=0; i<numOneLen; i++)
    {
        for (j=0; j<numTwoLen; j++)
        {
            tag=((int)numOne[i]-48)*((int)numTwo[j]-48);
            Carrying(tag, i, j, product);                          //递归
        }
    }

    //倒序输出结果
    for (i=_MAX * 2 - 1; i>0; i--)
    {
        if (product[i]!=0)
        {
            break;                                                          //查找到第一个不等于0的跳出
        }
    }
    for (j=i; j>=0; j--)
    {
        printf("%d",product[j]);
    }
    printf("\n");
    return 0;
}

//递归进位函数
void Carrying(int tag,int i,int j,int *p)
{
    p[i+j]+=tag;
    if (p[i+j]>9)
    {
        tag=p[i+j]/10;
        p[i+j] %=10;
        Carrying(tag, i+1, j, p);                                //写成Carrying(tag, i, j+1, p);也成立,为了让i+j递增而已
    }
    return ;
}

题是很水,但是代码还是挺长的……OVER!!!

全部评论

相关推荐

2024-12-29 19:48
河北科技大学 Java
没事就爱看简历:问题不在于简历:1、大学主修课程学那么多应用语言,作为计算机专业是很难理解的。 2、技能部分,每一个技能点的后半句话,说明对熟练,熟悉的标准有明显误会。 3、项目应该是校企合作的练习吧,这个项目你负责什么,取得了哪些成果都没有提及,只是列举了你认为有技术含量的点,而这些都有成熟的实现。
点赞 评论 收藏
分享
bLanK的小号:建议自己写一个比较新颖的项目,比如思维导图,在线文档,仿造postman,仿造一个组件库
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 听劝,这个简历怎么改 #
14102次浏览 183人参与
# 面试被问“你的缺点是什么?”怎么答 #
6438次浏览 100人参与
# 水滴春招 #
16534次浏览 349人参与
# 入职第四天,心情怎么样 #
11331次浏览 63人参与
# 租房找室友 #
8035次浏览 53人参与
# 读研or工作,哪个性价比更高? #
26176次浏览 356人参与
# 职场新人生存指南 #
199273次浏览 5510人参与
# 参加完秋招的机械人,还参加春招吗? #
27018次浏览 276人参与
# 文科生还参加今年的春招吗 #
4118次浏览 31人参与
# 简历无回复,你会继续海投还是优化再投? #
48634次浏览 561人参与
# 你见过最离谱的招聘要求是什么? #
144723次浏览 829人参与
# 如果重来一次你还会读研吗 #
155720次浏览 1706人参与
# 机械人选offer,最看重什么? #
69078次浏览 449人参与
# 选择和努力,哪个更重要? #
44323次浏览 493人参与
# 如果再来一次,你还会学硬件吗 #
103650次浏览 1245人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
20526次浏览 414人参与
# 招聘要求与实际实习内容不符怎么办 #
46769次浏览 494人参与
# 22届毕业,是读研还是拿外包offer先苟着 #
4652次浏览 27人参与
# 你们的毕业论文什么进度了 #
901291次浏览 8961人参与
# 软开人,你觉得应届生多少薪资才算合理? #
81380次浏览 496人参与
# 国企还是互联网,你怎么选? #
109198次浏览 853人参与
牛客网
牛客企业服务