JAVA学习-练习试用Java实现“字符串相乘”

问题:

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

示例 1:

输入: num1 = "2", num2 = "3"
输出: "6"
示例 2:

输入: num1 = "123", num2 = "456"
输出: "56088"
说明:

num1 和 num2 的长度小于110。
num1 和 num2 只包含数字 0-9。
num1 和 num2 均不以零开头,除非是数字 0 本身。
不能使用任何标准库的大数类型(比如 BigInteger)或直接将输入转换为整数来处理。

解答思路:

以下是使用 Java 实现两个字符串形式的非负整数相乘的代码:

public class StringMultiplication {public static String multiply(String num1, String num2) {int len1 = num1.length();int len2 = num2.length();// 用于存储结果的字符数组char[] result = new char[len1 + len2];// 从右往左逐位相乘,并将结果累加到对应位置for (int i = len1 - 1; i >= 0; i--) {for (int j = len2 - 1; j >= 0; j--) {int product = (num1.charAt(i) - '0') * (num2.charAt(j) - '0');int p1 = i + j;int p2 = i + j + 1;// 处理进位int sum = product + result[p2];result[p2] = (char) (sum % 10);result[p1] += sum / 10;}}// 去除结果开头的 0int start = 0;while (start < result.length && result[start] == '0') {start++;}// 将结果转换为字符串StringBuilder sb = new StringBuilder();for (int i = start; i < result.length; i++) {sb.append(result[i]);}return sb.toString();}public static void main(String[] args) {String num1 = "123";String num2 = "456";System.out.println(multiply(num1, num2));}}

上述代码中,'multiply'方法接受两个字符串形式的整数'num1'和'num2'作为参数。通过两层循环从右往左逐位相乘,并处理进位。最后去除结果开头的 0,并将结果转换为字符串返回。

在'main'方法中,我们以示例输入调用'multiply'方法,并打印结果。

(文章为作者在学习java过程中的一些个人体会总结和借鉴,如有不当、错误的地方,请各位大佬批评指正,定当努力改正,如有侵权请联系作者删帖。)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/37484.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CesiumJS【Basic】- #026 加载kml/kmz文件

文章目录 加载kml/kmz文件1 目标2 代码2.1 main.ts3 资源加载kml/kmz文件 1 目标 加载kml/kmz文件(kmz是kml的压缩格式) 2 代码 加载CesiumJS【Basic】- #025 生成kml/kmz文件导出生成的entities.kml/kmz文件,并修改点、线、面元素的颜色 2.1 main.ts import * as Ces…

MySQL的`count(expr)`函数选择指南

MySQL的count(expr)函数选择指南 1. 背景知识 文章基于MySQL 8.0.30&#xff0c;使用InnoDB和MyISAM引擎。count(expr): MySQL聚合函数&#xff0c;用于统计列值或表行数。统计列值: 只计非NULL值。统计表行数: 不区分NULL与否。 2. 存储引擎差异 MyISAM: 表定义、数据、索…

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷9(容器云)

#需要资源&#xff08;软件包及镜像&#xff09;或有问题的&#xff0c;可私聊博主&#xff01;&#xff01;&#xff01; #需要资源&#xff08;软件包及镜像&#xff09;或有问题的&#xff0c;可私聊博主&#xff01;&#xff01;&#xff01; #需要资源&#xff08;软件包…

2024最出色的代理软件评估及推荐

随着网络技术的飞速发展&#xff0c;代理软件已成为许多网络活动不可或缺的工具&#xff0c;特别是在数据抓取、网络安全防护等方面。在众多代理软件中&#xff0c;哪些能真正满足用户需求&#xff0c;提供卓越的性能和服务呢&#xff1f;我们的测评团队经过深入研究和测试&…

笔记本电脑安装CentOS

正文共&#xff1a;1234 字 24 图&#xff0c;预估阅读时间&#xff1a;2 分钟 前面我们对VPP进行了多次介绍&#xff08;羡慕&#xff01;大佬的VPP能达到180G性能&#xff0c;而我的却只有13.5G&#xff09;&#xff0c;可以发现他的很多优点&#xff0c;但是我们也可以发现它…

【Sklearn-驯化】sklearn中决策树cart的用法,看这篇就够了

【Sklearn-驯化】sklearn中决策树cart的用法&#xff0c;看这篇就够了 本次修炼方法请往下查看 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合&#xff0c;智慧小天地&#xff01; &#x1f387; 免费获取相关内容文档…

鸿蒙NEXT

[中国&#xff0c;东莞&#xff0c;2024年6月24日] 华为开发者大会&#xff08;HDC&#xff09;正式开幕&#xff0c;带来全新的 HarmonyOS NEXT、盘古大模型5.0等最创新成果&#xff0c;持续为消费者和开发者带来创新体验。 HarmonyOS NEXT 鸿蒙生态 星河璀璨 鸿蒙生态设备数…

【实战指南】SpringBoot结合Zookeeper/Nacos构建Dubbo微服务

1、微服务架构 微服务架构是一种设计复杂应用程序的方法&#xff0c;它提倡将单一应用程序开发为一组小型、独立的服务&#xff0c;每个服务运行在其自己的进程中&#xff0c;并通过轻量级通信&#xff08;通常是HTTP协议&#xff09;进行交互。每个服务都是围绕业务功能构建的…

通讯录管理系统——显示联系人

功能描述&#xff1a;显示通讯录中已有的联系人信息 显示联系人实现步骤&#xff1a; 1.封装显示联系人函数 2.测试显示联系人功能 一、封装显示联系人函数 思路&#xff1a;判断如果当前通讯录中没有人员&#xff0c;就提示记录为空&#xff1b;人数大于0&#xff0c;显示…

Java代码基础算法练习-计算看完一本书的天数-2024.06.29

任务描述&#xff1a; 一本书有 n 页&#xff0c;小明第一天看 1 页&#xff0c;以后每天都比前一天多看 2 页&#xff0c;计算小明看完整本书 需要多少天&#xff1f; 解决思路&#xff1a; 每天都比前一天多看 2 页&#xff0c;输入的页数 n 为判断标准&#xff0c;while 循…

【提交ACM出版 | EIScopus检索稳定 | 高录用】第五届大数据与社会科学国际学术会议(ICBDSS 2024,8月16-18)

第五届大数据与社会科学国际学术会议&#xff08;ICBDSS 2024&#xff09;将于2024年08月16-18日在中国-上海隆重举行。 ICBDSS会议在各专家教授的支持下&#xff0c;去年已成功举办了四届会议。为了让更多的学者有机会参与会议分享交流经验。本次会议主要围绕“大数据”、“社…

【nvm】如何使用nvm优雅的管理Node.js

希望文章能给到你启发和灵感&#xff5e; 如果觉得文章对你有帮助的话&#xff0c;点赞 关注 收藏 支持一下博主吧&#xff5e; 阅读指南 开篇说明一、基础环境说明1.1 硬件环境1.2 软件环境 二、什么是nvm?2.1 概念2.1 安装2.1.1 对于Mac系统2.1.2 对于Windows系统2.1.3 对于…

框架分享:登录框架easy-login

最近花了两周时间把登录体系代码总结了一下&#xff0c;完成了登录框架easy-login的代码。以此文分享给大家。 该登录框架支持密码、本机号码一键登录、微信授权登录&#xff08;小程序、APP、公众号&#xff09;、支付宝授权登录&#xff08;小程序&#xff09;等。 登录方式…

贪心法思想-求最大子数组和案例图解

贪心法思想 ​ 基本思想是在问题的每个决策阶段&#xff0c;都选择当前看起来最优的选择&#xff0c;即贪心地做出局部最优的决策&#xff0c;以期获得全局最优解。 ​ 正如其名字一样&#xff0c;贪心法在解决问题的策略上目光短浅&#xff0c;只根据当前已有的信息做出选择…

AI绘画,5分钟用 stable diffusion 做装修图,室内设计师要失业了

大家好我是极客菌&#xff01;随着AI绘画功能越来越强大&#xff0c;不光可以用来画人物&#xff0c;为电商模特一键换衣&#xff0c;还可以在5分钟内生成一张室内效果图&#xff0c;看来室内设计师饭碗也岌岌可危了。 1、获得室内线稿图 首先&#xff0c;打开3ds max &#…

LabVIEW航空用电缆检测

系统通过集成LabVIEW平台&#xff0c;实现了航空用电缆检测过程中的自动数据收集、处理和报告生成&#xff0c;显著提升了检测效率和数据准确性&#xff0c;降低了人工干预&#xff0c;提高了电缆检测的可靠性。 项目背景 在航空领域&#xff0c;电缆的质量检测对确保飞机及其…

排序问题学习c++ 跑步比赛

问题是假定有25名短跑选手争夺前三名&#xff0c;赛场上有五条赛道&#xff0c;一次可以有五名选手同时比赛&#xff0c;比赛不计时&#xff0c;只看相应的名次&#xff0c;假如选手的发挥是稳定的&#xff0c;最少几次比赛才可以决出前三名。 #include <iostream> // 包…

大语言模型预训练数据集及清洗框架介绍【简单版】

目录 一、常见数据集类型 &#x1f4da; 二、数据清洗框架对比 &#x1f9f9; SlimPajama MNBVC CC-NET 三、理想的清洗框架 &#x1f4af; 四、数据清洗核心流程 &#x1f504; 五、现有数据集反思 &#x1f914; 六 中文预训练数据集 &#x1f1e8;&#x1f1f3; 1…

AI Infra简单记录

向量数据库的作用 1. 在AI大模型训练过程中&#xff0c;向量数据库可以有效提升数据检索、特征提取等任务的效率。 2、在AI大模型推理过程中&#xff0c;向量数据库为大模型提供外挂知识库&#xff0c;提升模型时效性与准确性&#xff0c;提供缓存能力&#xff0c;减少调用开…

c语言中extern定义和引用其他文件的变量,(sublime text)单独一个文件编译不会成功

关键字extern的作用 这个很常见的都知道是定义一个外部变量或函数&#xff0c;但并不是简单的建立两个文件&#xff0c;然后在用extern 定义在另一个非最初定义变量的文件里 区分文件和编译运行的文件 例如&#xff0c;一个文件夹里有文件a.c和文件b.c,在sublime text中直接…