首页 > 试题广场 >

大数乘法

[编程题]大数乘法
  • 热度指数:3963 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
实现大数乘法,输入是两个字符串如
n1 = '340282366920938463463374607431768211456'
n2 = '340282366920938463463374607431768211456'
输出
'115792089237316195423570985008687907853269984665640564039457584007913129639936'
要求:不能使用对大数相乘有内建支持的语言;需要包含对输入字符串的合法性校验

输入描述:
一行,两个非负整数n1,n2,保证|n1|+|n2|<10000,其中|n|是n作为字符串的长度


输出描述:
输出n1*n2的结果
示例1

输入

340282366920938463463374607431768211456 340282366920938463463374607431768211456

输出

115792089237316195423570985008687907853269984665640564039457584007913129639936

备注:
给出的数据均是合法的,但仍建议您对输入的字符串进行合法性校验
头像 牛客题解官
发表于 2020-06-05 18:54:44
题解: 考察点: 模拟,字符串 易错点: 题目中明确说明了是大数的乘法,很显然会是会爆掉int或者long long类型的,所以切不可用这2种类型来记录数据,进行简单的乘法 方法一:Python 因为语言支持自动高精度,因此本题如果用来写就会显得尤为简单。需要注意的是的输入是字符串,所以需要自己转化 展开全文
头像 牛客770539642号
发表于 2023-06-03 00:39:49
#include <iostream> #include <cstring> #include <string> #include<algorithm> using namespace std; const int N = 100010; int a[ 展开全文