43.字符串相乘

题目

给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。

示例 1:

示例 2:

说明:

num1 和 num2 的长度小于110。

num1 和 num2 只包含数字 0-9。

num1 和 num2 均不以零开头,除非是数字 0 本身。

不能使用任何标准库的大数类型(比如 BigInteger)或直接将输入转换为整数来处理。

题解

大数相乘,这应该是大一的时候做的题目吧。就是模拟竖式运算。

首先大数是由字符串组成,并且高位在左,低位在右,为了乘起来方便,需要做的就是低位放在左边,高位放在右边。

由于99*99最多是小于10000的,所以乘完后的数字位数最高为 两个数字的位数之和,所以需要这样一个长度的整数数组,把每一位的临时结果存储起来

注意临时结果求法:比如45726 ,个位数=76,十位数字=72+56,百位数字=52+46+…,每一位都放在一个int[]数组里面,然后再去分离个位和十位。对应代码中的d[i+j] +=a*b;

最后需要注意的是,把前边的0删掉。

每日英文

【真题例句】1996年Text3

The shareholdersas suchhad no knowledgeof the lives, thoughts or needs of theworkmenemployedby the companyin whichhe held shares, and his influence on the relations ofcapital and laborwas not good.

热门阅读

少一些功利主义的追求,

多一些不为什么的坚持!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180809G0A5J900?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券