打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
大整数相乘算法

#include <stdio.h>
#include <string.h>
#define N 5
#define M 5
int res[M];

/*****
* Function: 大整数相乘算法
* 参数:
* a: 乘数
* b: 乘数
* n: a的长度
* m: b的长度
* 没有返回值,结果直接放到全局变量res数组中,如果不想要全局变量,也可以在函数中多加一个参数,保存结果。
*****/
void Multiply(char *a,char *b,int n,int m)            // 大整数相乘
{
    int i,j,temp,t,tt;
    int num=0;
    memset(res,0,sizeof(res));
    for(i=0;i<m;i++)
    {
        temp=0;
        for(j=0;j<n;j++)
        {    
            t=(a[n-1-j]-'0')*(b[m-1-i]-'0')+temp;
            if(0 == t)    
                continue;                
            num = j+i;        
            tt = res[num]+(t);    
            res[num] = tt%10;    
            temp = tt/10;
        }
        if( temp > 0 )
        {
            res[++num] += temp;
        }
    }
    for(i=num;i>=0;i--)                    // 输出结果
        printf("%d",res[i]);
    printf("\n");
}

int main()                             // a simple test
{
    char a[N],b[N];
    scanf("%s%s",a,b);
    int len1 = strlen(a);
    int len2 = strlen(b);
    Multiply(a,b,len1,len2);
    return 0;
}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
程序员面试攻略 5.6面试例题:整数/字符串之间的转换
Lua:字节数组与int互转
C语言经典算法(二)
动态规划二:整数划分求积
程序员面试100题(算法)之把字符串转换成整数
超大整数相除
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服