当前位置: 首页 > wzjs >正文

金融网站织梦模板免费下载十堰市郧城建设网站

金融网站织梦模板免费下载,十堰市郧城建设网站,企业的网站特点,app开发团队公司文章目录 Golang 解大整数乘法问题描述:LeetCode 43. 字符串相乘思路Golang 代码 Golang 解大整数乘法 在初学 C 语言的时候,我们一定接触过“字符串相加”或“字符串相乘”之类的问题,对于初学者而言,这类问题的难度一般来说是比…

文章目录

  • Golang 解大整数乘法
    • 问题描述:LeetCode 43. 字符串相乘
      • 思路
      • Golang 代码

Golang 解大整数乘法

在这里插入图片描述

在初学 C 语言的时候,我们一定接触过“字符串相加”或“字符串相乘”之类的问题,对于初学者而言,这类问题的难度一般来说是比较大的(回想起我大一刚刚学习 C 语言时,解决这两道题的过程非常的痛苦)。

今天我们学习如何使用 Golang 来解决大整数乘法问题,即“字符串相乘”问题。

问题描述:LeetCode 43. 字符串相乘

思路

我们将num1视为乘数,num2视为被乘数,字符串相乘的基本思路就是每一次取num2当中的一位数字,与整个num1进行相乘,假定num1的长度是m,而num2的长度是n,那么num2中的n个数就需要与num1进行m * n次相乘。

由于我们进行的是乘法,从num2的最后一位开始与num1进行相乘,当进行到倒数第二位的时候,需要将整个相乘的结果向左移动一位,右侧添加一个0,毕竟在竖式乘法当中就是这样做的。

最后将每一次相乘得到的结果通过“字符串加法”汇总起来,就可以得到最终“字符串乘法”的结果。

总的来说,这道题目的综合性非常的强,既考察了在 Golang 当中如何将字符串与数字进行相互转换,又考察了“字符串乘法”解题模拟的复杂思路。

Golang 代码

func multiply(num1 string, num2 string) string {// 大整数乘法// num1 是乘数, num2 是被乘数if num1 == "0" || num2 == "0" {return "0"}m, n := len(num1), len(num2)ans := ""for i := n - 1; i >= 0; i -- {// 使用被乘数的每一位与乘数相乘, 然后将每一次乘法得到的结果通过"字符串加法"加在一起curr := ""for j := n - 1; j > i; j -- {curr += "0"}// ⬆️ 每进行一次乘法之后, 与模拟竖式乘法类似, 这一次乘数当中数字与被乘数相乘的结果需要补零y := int(num2[i] - '0')cnt := 0    // 记录进位for j := m - 1; j >= 0; j -- {x := int(num1[j] - '0')product := x * y + cntcurr = strconv.Itoa(product % 10) + currcnt = product / 10}for cnt > 0 {curr = strconv.Itoa(cnt % 10) + currcnt /= 10}ans = addStrings(ans, curr)}return ans
} func addStrings(num1, num2 string) string {m, n := len(num1), len(num2)ans := ""cnt := 0for i, j := m - 1, n - 1; i >= 0 || j >= 0; i, j = i - 1, j - 1 {x, y := 0, 0if i >= 0 {x = int(num1[i] - '0')}if j >= 0 {y = int(num2[j] - '0')}curr := x + y + cntans = strconv.Itoa(curr % 10) + anscnt = curr / 10}for cnt > 0 {ans = strconv.Itoa(cnt % 10) + anscnt /= 10}return ans
}
http://www.dtcms.com/wzjs/570366.html

相关文章:

  • 上海企业网站开发自动发卡网站建设
  • 花钱也可以哪些网站可以做推广广告织梦网站首页目录在哪
  • 做一个网站和手机软件多少钱网站用什么东西做
  • 不会编程怎么做网站wp建站
  • 那片海dede织梦源码企业网络公司工作室网站模板源码模板php网站开发是指
  • 摄影师网站模板wordpress搜索增加条件
  • 自己做网站服务器多少钱长春网站建设设计
  • 百度免费推广网站网络维护一个月多少钱
  • 用手机做网站的软件成功的网络营销案例及分析
  • 广州外贸营销型网站建设泰州建站免费模板
  • 网站建设的基本步骤有哪些pc网站和手机网站
  • 哈尔滨网站建设公司oeminc长沙关键词快速排名
  • wordpress 子站销售的技巧与口才
  • 沈阳个人网站建设代理品牌世界著名小型建筑设计
  • 家装效果图网站投资交易网站开发
  • 网站建设的软文怎么写网站建设找导师蓝林
  • 做网站运营工资多少爱丽丝家具网页制作教程
  • 宝应人网站论坛天水市建设局网站公告
  • 网站商城建设价格深圳做门户网站
  • 毕设做微课资源网站设计可以吗站酷网怎么接单赚钱
  • 哪些公司做外贸网站有没有转门做乐器演奏的网站
  • 照片视频制作网站广告公司网站建设方案
  • 汕头建站模板系统视频app制作
  • 温州瓯北做网站网站制作进度表
  • 网站建设产品分割扁平式的网站
  • 商务网站建设与推广实训意义求职网站排名
  • 微网站如何建立的南通企业建站模板
  • 济南物流公司网站建设wordpress添加rss
  • 番禺网站建设系统php网站开发实训总结
  • 事务所网站建设深圳互联网设计公司