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

解题思路

第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. VGA显示正圆

    接着上次的随笔,既然VGA时序已经实现了,那么就显示点东西看看吧. 想显示个圆,但是无从下手,参考了这篇文章:https://user.qzone.qq.com/1241003385/blog/154 ...

  2. Redis 下载与配置window服务

    1.Redis下载 Git下载地址:https://github.com/MicrosoftArchive/redis/releases 2.配置Window服务 步骤一:在 Redis目录 输入 c ...

  3. 点云ICP注册

    原文链接 背景 两个点云要注册在一块,一般分两个步骤:先做一个大致的对齐,也就是所谓的初始注册,一般可以通过一些可靠的点对来计算得到(如图3所示):然后在初始注册的基础上进行精细注册,提升注册的精度( ...

  4. illustrator 偏方

    视图 边角构件  - - 这个是显示边角弧度的

  5. 【神经网络与深度学习】【Matlab开发】caffe-windows使能Matlab2015b接口

    [神经网络与深度学习][Matlab开发]caffe-windows使能Matlab2015b接口 标签:[神经网络与深度学习] [Matlab开发] 主要是想全部来一次,所以使能了Matlab的接口 ...

  6. 第七周课程总结&实验报考(五)

    第七周课程总结&实验报考(五) 实验四 类的继承 实验目的: 1.理解抽象类与接口的使用: 2.了解包的作用,掌握包的设计方法. 实验要求: 1.掌握使用抽象类的方法. 2.掌握使用系统接口的 ...

  7. Oracle恢复ORA-00600: 内部错误代码, 参数: [kcratr_scan_lastbwr] 问题的简单解决

    Oracle恢复ORA-00600: 内部错误代码, 参数: [kcratr_scan_lastbwr] 1. 简单处理 sqlplus / as sysdba startup mount recov ...

  8. 云服务器以及linux操作系统打开防火墙,在墙上开一个小口

    在服务器运行时,需要在某个端口上开一个小口,以供外部访问 执行命令/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT 8080为端口号,需要开的 ...

  9. Python进阶编程 类的成员

    类的成员 class A: company_name='老男孩' #静态变量 __iphone='1515151' #私有静态变量 def __init__(self,name,age): #特殊方法 ...

  10. python-2:爬取某个网页(虎扑)帖子的标题做词云图

    关键词:requests,BeautifulSoup,jieba,wordcloud 整体思路:通过requests请求获得html,然后BeautifulSoup解析html获得一些关键数据,之后通 ...