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

输入: num1 = “123”, num2 = “456”
输出: “56088”

题解:模拟竖式乘法计算,用一个数字字符串的每一位数字与两一个数字字符串相乘,再将所有相乘得到的结果加起来

class Solution {public String multiply(String num1, String num2) {if(num1.equals("0")||num2.equals("0"))return "0";String longString=num1.length()>=num2.length()?num1:num2;String shortString=num1.length()>=num2.length()?num2:num1;String lastString="";for(int i=shortString.length()-1;i>=0;i--){lastString=add(lastString,twoNumMulti(longString,shortString.charAt(i),shortString.length()-1-i));}return lastString;}private String twoNumMulti(String num1,char num2,int digits){int num=num2-'0';StringBuffer res=new StringBuffer();int carry=0;for(int i=num1.length()-1;i>=0;i--){int temp=num*(num1.charAt(i)-'0')+carry;carry=temp/10;res.insert(0,temp%10);}if(carry!=0)res.insert(0,carry);for(int i=0;i<digits;i++)res.append('0');return res.toString();}private String add(String num1,String num2){String longString=num1.length()>=num2.length()?num1:num2;String shortString=num1.length()>=num2.length()?num2:num1;while(shortString.length()<longString.length()){shortString='0'+shortString;}int length=longString.length();StringBuffer res=new StringBuffer();int carry=0;for(int i=length-1;i>=0;i--){int temp=(longString.charAt(i)-'0'+shortString.charAt(i)-'0'+carry);carry=temp/10;res.insert(0,temp%10);}if(carry!=0)res.insert(0,carry);return res.toString();}
}

leetcode43(字符串相乘:模拟乘法竖式计算)相关推荐

  1. 力扣题解:43. 字符串相乘:模拟“乘法竖式”

    题目 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式. 示例 1: 输入: num1 = "2", ...

  2. C语言有小数乘法,十道小数乘小数的乘法竖式计算并有答案

    十道小数乘小数的乘法竖式计算并有答案以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 十道小数乘小数的乘法竖式计算并有答案 ...

  3. Python模拟大整数乘法的小学竖式计算过程

    让我们先看个图回顾一下小学学过的计算整数乘法的竖式计算过程 然后再来看如何使用Python来模拟上面的过程,虽然在Python中计算任意大的数字乘法都没有问题,但下面的代码作为一个算法的理解还是不错的 ...

  4. 数学老师从没这么教过,乘法竖式中进位可以是多位(附Python实现与测试源码)...

    大概十五年前,曾经写过一个C语言版本的类似代码.核心思想是:在乘法竖式计算过程中,每次的进位实际上是可以超过一位的,虽然老师从来没有这么教过. 这样的操作在Python中是没有必要的,因为Python ...

  5. 保留两位小数除法算式_两位小数除法练习题竖式计算

    精品文档 2016 全新精品资料 - 全新公文范文 - 全程指导写作 – 独家原创 1 / 10 两位小数除法练习题竖式计算 一.一般乘法竖式计算题 65×0.0.0016×10.65×0.1 0 . ...

  6. c语言横纵坐标乘法,C语言 · 猜算式 · 乘法竖式

    题目:猜算式 你一定还记得小学学习过的乘法计算过程,比如: 273 x   15 ------ 1365 273 ------ 4095 请你观察如下的乘法算式 *** x   *** ------- ...

  7. 分数如何进行竖式计算机,分数列竖式计算怎么写

    1.分数怎么列竖式计算 分数一般转化为小数,之后再进行竖式计算. 例如算式:1/2+3转化为0.5+3 竖式如下: 扩展资料: 竖式计算法则 1.乘法 一个数的第i位乘上另一个数的第j位 就应加在积的 ...

  8. 还原竖式:下图的乘法竖式中,每一个星号代表一个数位。若出现的数字有且仅有2, 3, 5, 7四种,你能将此竖式完全还原吗?

    题目 下图的乘法竖式中,每一个星号代表一个数位.若出现的数字有且仅有2, 3, 5, 7四种,你能将此竖式完全还原吗? 进一步,若将题目中的2, 3, 5, 7改为其它互异的四个数字,还存在要求的乘法 ...

  9. 三位数除以两位数竖式计算没有余数_二年级数学第三十课:有余数的除法 例4 试商...

    二年级数学第三十课:有余数的除法 例4 试商 Spring is bound to come. 一.学习目标与重难点 学习目标: 1.通过计算引导学生探索有余数除法的想商试商方法,从计算中总结有余数除 ...

最新文章

  1. Datawhale自组织学习报告!
  2. C++与JAVA语言区别
  3. input框的内容变化监听
  4. php 微信 返回,php版微信返回用户text输入的方法
  5. 【数据结构与算法】之深入解析“缺失的第一个正数”的求解思路与算法示例
  6. 求教PHP+oracle的开发
  7. 用delphi 做服务器,basic4android 实现三层数据交互
  8. 【20181026T2】**图【最小瓶颈路+非旋Treap+启发式合并】
  9. redis-数据类型-有序集合
  10. php执行函数吗_php函数system
  11. 江西工业职业技术学院计算机专业在哪个校区,江西工业职业技术学院几个校区...
  12. 电气器件系列三十三:步进电机驱动器
  13. 颜宁:学术圈问题很多,也不分国籍,希望年轻一代守住底线
  14. pip 安装 nexmo
  15. RabbitMQ 下载安装 (window) 百度网盘
  16. java webservice用户名密码_WebService 用户名密码验证
  17. WinRAR误装其他语言版本卸载重装后右键依旧存在外文
  18. Centos 7.0 安装Mono 3.4 和 Jexus 5.6
  19. Java基础(19)IO流
  20. 无线通信基础知识7:射频器件的基本参数3

热门文章

  1. POJ--3352 道路建设
  2. 基于UDP的歌词同步系统
  3. pilz pnoz s4说明书_Pilz展示PNOZ s4系列常用继电器750134
  4. 趁着年轻,就应该多去看看这个世界
  5. 一个外地人在郑州报考驾校、选择驾校的经历分享给大家。
  6. 使用前需先登录,登录成功后方可使用,登录用户名和密码保存在一个文本文件中,可添加好友,好友信息包括:姓名、性别。输入姓名,点击查询,将给好友信息进行显年龄、爱好、现居住城市,点击保存将信息保存到文件
  7. 个人注册CSDN后第一篇分享关于测试工程师工作心得的文章
  8. 【某易Y盾】点选验证码第一波识别
  9. 嵌入式、物联网常见通信协议
  10. 逆向——企业微信根据手机号查微信用户信息并添加好友