大数乘法问题一般可以通过将大数转换为数组来解决。

解题思路

第1步

第2步

第3步

第4步

样例

输入1:

56 744

输出1:

800

输入2:

-10 678

输出2:

-6780

输入3:

1234567890 45678901234

输出3:

56393704713977776260

代码实现

#include<stdio.h>
#include<string.h>
#define MAX 1000 // 大数乘法
void Multiply(char* tempA, char* tempB, int* prod, int lenA, int lenB)
{
for (int i = 0; i < lenA; i++)
{
for (int j = 0; j < lenB; j++)
{
prod[i+j] += (tempA[i] - '0')*(tempB[j] - '0');
}
} for (int i = lenA + lenB - 1 - 1; i > 0; i--)
{
// 如果本位大于9,则保留本位数的个位,十位向左进位
if (prod[i] > 9)
{
prod[i-1] += prod[i] / 10;
prod[i] %= 10;
}
}
} int main()
{
char strA[MAX] = {0};
char strB[MAX] = {0}; while (scanf("%s%s", strA, strB) != EOF)
{
char tempA[MAX] = {0};
char tempB[MAX] = {0};
int prod[2*MAX] = {0}; int lenA = 0;
int lenB = 0;
int negNumA = 0;
int negNumB = 0; lenA = strlen(strA); // 计算字符串A的长度
lenB = strlen(strB); // 计算字符串A的长度 // 去掉字符串A和B的负号
if (strA[0] == '-')
{
negNumA++;
lenA--;
}
if (strB[0] == '-')
{
negNumB++;
lenB--;
} // 把去掉负号的字符串存储到temp数组中
for (int i = 0; i < lenA; i++)
{
tempA[i] = strA[i+negNumA];
}
for(int j = 0; j < lenB; j++)
{
tempB[j] = strB[j+negNumB];
} Multiply(tempA, tempB, prod, lenA, lenB); // 如果prod数组的第一个元素是0,则直接输出0,如100*0=000,输出0
if (prod[0] == 0)
{
printf("%d", prod[0]);
}
// 打印负号
if (negNumA + negNumB == 1)
{
printf("-");
} // 打印A*B的结果,N位数和M位数相乘的最大位数为N+M
for (int i = 0; i < lenA + lenB - 1; i++)
{
if (prod[0] != 0)
{
printf("%d", prod[i]);
}
} printf("\n"); }
return 0;
}

个人主页:

www.codeapes.cn

大数乘法(A * B Problem Plus)问题的更多相关文章

  1. (母函数 Catalan数 大数乘法 大数除法) Train Problem II hdu1023

    Train Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  2. [POJ] #1001# Exponentiation : 大数乘法

    一. 题目 Exponentiation Time Limit: 500MS   Memory Limit: 10000K Total Submissions: 156373   Accepted: ...

  3. Uva-oj Product 大数乘法

    Product Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit Status Des ...

  4. hdu-5666 Segment(俄罗斯乘法or大数乘法取模)

    题目链接: Segment Time Limit: 2000/1000 MS (Java/Others)     Memory Limit: 65536/65536 K (Java/Others) P ...

  5. hdu1313 Round and Round We Go (大数乘法)

    Problem Description A cyclic number is an integer n digits in length which, when multiplied by any i ...

  6. 51nod 1027大数乘法

    题目链接:51nod 1027大数乘法 直接模板了. #include<cstdio> #include<cstring> using namespace std; ; ; ; ...

  7. 用分治法实现大数乘法,加法,减法(java实现)

    大数乘法即多项式乘法问题,求A(x)与B(x)的乘积C(x),朴素解法的复杂度O(n^2),基本思想是把多项式A(x)与B(x)写成 A(x)=a*x^m+b B(x)=c*x^m+d 其中a,b,c ...

  8. HDOJ-1042 N!(大数乘法)

    http://acm.hdu.edu.cn/showproblem.php?pid=1042 题意清晰..简单明了开门见山的大数乘法.. 10000的阶乘有35000多位 数组有36000够了 # i ...

  9. 51 Nod 1027 大数乘法【Java大数乱搞】

    1027 大数乘法 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 给出2个大整数A,B,计算A*B的结果. Input 第1行:大数A 第2行:大数B (A,B的长度  ...

随机推荐

  1. CSS3 —— 文本 背景 列表 渐变

    <span>标签 作用 ——  能让某几个文字或者某个词语凸显出来 候选字体 p {font-family: Times, TimesNR, 'New Century Schoolbook ...

  2. python基础-输出

    输出helloworld语句       print('helloworld') 换行操作    print('helloworld',‘hellodarling’)

  3. 【MM系列】SAP SAP库龄报表逻辑理解

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP SAP库龄报表逻辑理解   ...

  4. 封装jquery插件

    最近要到使用别的jquery插件,但部分功能并不能满足,为满足功能,只能对插件进行修改来满足,要修改插件,先要了解插件如何封装, 明白了如何封装插件,才能更好修改插件:如何封装插件? 1.插件封装类型 ...

  5. Node.js使用redis进行订阅发布管理

    redis NPM 官方介绍地址:https://www.npmjs.com/package/redis let redis = require('redis'); let subscriber; l ...

  6. queue的常见用法

    queue的使用 queue是什么? queue是一种先入先出的容器 queue的定义 引入 # include <iostream> # include <queue> us ...

  7. 洛谷 P5239 回忆京都 题解

    题面 裸的杨辉三角前缀和,但----- 在求前缀和的时候有可能得到一个负数(由于取模的原因),所以一定要加上模数后再取模!!!! #include <bits/stdc++.h> #def ...

  8. 腾讯万亿级分布式消息中间件TubeMQ正式开源

    TubeMQ是腾讯在2013年自研的分布式消息中间件系统,专注服务大数据场景下海量数据的高性能存储和传输,经过近7年上万亿的海量数据沉淀,目前日均接入量超过25万亿条.较之于众多明星的开源MQ组件,T ...

  9. sql server 对数运算函数log(x)和log10(x)

    --LOG(x)返回x的自然对数,x相对于基数e的对数 --LOG10(x)返回x的基数为10的对数 示例:select LOG(3),LOG(6),LOG10(1),LOG10(100),LOG10 ...

  10. AWS EC2 搭建 Hadoop 和 Spark 集群

    前言 本篇演示如何使用 AWS EC2 云服务搭建集群.当然在只有一台计算机的情况下搭建完全分布式集群,还有另外几种方法:一种是本地搭建多台虚拟机,好处是免费易操控,坏处是虚拟机对宿主机配置要求较高, ...