Java [编程题]大整数相乘
发布日期:2021-06-20 05:37:08 浏览次数:2 分类:技术文章

本文共 1691 字,大约阅读时间需要 5 分钟。

[编程题]大整数相乘

  •  时间限制:1秒 空间限制:32768K

有两个用字符串表示的非常大的大整数,算出他们的乘积,也是用字符串表示。不能用系统自带的大整数类型。

输入描述:

空格分隔的两个字符串,代表输入的两个大整数

输出描述:

输入的乘积,用字符串表示

示例1

输入

72106547548473106236 982161082972751393

输出

70820244829634538040848656466105986748

分析:

       大整数相乘模拟我们平时算乘法的过程,先写个函数:被乘数是一个字符,然后在编写个大整数相加的函数。最后每次遍历被乘数就好。

import java.util.*;/** * @program: 个人demo * @description: LeetCode练兵场 * @author: Mr.Hu * @create: 2019-03-01 21:10 */public class Main{    public static void main(String[] args) {        Scanner sc =new Scanner(System.in);        while (sc.hasNext()){            StringBuilder s1=new StringBuilder(sc.next());            StringBuilder s2=new StringBuilder(sc.next());            StringBuilder re=new StringBuilder();            for (int i = s1.length()-1; i >=0; i--) {                StringBuilder temp=multiply(s2,s1.charAt(i));                for (int j = i; j < s1.length()-1; j++) temp.append('0');           //乘出来的结果别忘了升级(加0000)                re=add(re,temp);            }            System.out.println(re);        }    }    public static StringBuilder multiply(StringBuilder s, char c){        StringBuilder re=new StringBuilder();        int carry=0;        for (int i = s.length()-1; i >=0 ; i--) {        //乘法            int temp=(s.charAt(i)-'0')*(c-'0')+carry;            re.append((char)(temp%10+'0'));            carry=temp/10;        }        if (carry!=0) re.append((char)(carry+'0'));        return re.reverse();    }    public static StringBuilder add(StringBuilder s1, StringBuilder s2){        s1=s1.reverse();s2=s2.reverse(); //反转方便相加        StringBuilder re=new StringBuilder();        while (s1.length()
s2.length()) s2.append('0'); int carray=0; for (int i =0 ; i

 

转载地址:https://blog.csdn.net/h2453532874/article/details/88428152 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:2019拼多多暑期实习生机试题-03 避嫌抢劫(java)
下一篇:2019拼多多暑期实习生机试题-02趣味字母卡片(java)

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月16日 17时59分29秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

大疆 RoboMaster 机甲大师官方刚刚开通”机甲小 S 实验室”知乎专栏 2019-04-26
大疆机甲大师教育机器人Python API中文化之三:底盘灯效 2019-04-26
大疆机甲大师教育机器人Python API中文化之四五:云台灯效,指定序号 2019-04-26
大疆机甲大师教育机器人Python API中文化之六:关灯 2019-04-26
“中文编程”知乎专栏两岁了——山雨欲来风满楼 2019-04-26
大疆机甲大师Python API之七:做个闹钟 2019-04-26
【意外走向】大疆机甲大师Python API之八:计时——为性能测试展开1000次循环 2019-04-26
RFC#2457——Rust 语言支持非 ASCII 码标识符在 GitHub 引发的激辩(一) 2019-04-26
RFC#2457——Rust 语言选择支持非 ASCII 码标识符在 GitHub 引发的激辩(二) 2019-04-26
”为什么有这么多人执着于中文编程?”回答两千赞留念及回应 2019-04-26
【家务】盘点小孩玩具零件缺失情况 2019-04-26
开发中文 API 的一些策略 2019-04-26
从日本编程书籍《我的第一本编程书》中译版看中文例程如何扬长避短——标识符(一) 2019-04-26
中文命名标识符如何区分类型和变量 2019-04-26
编程术语成系统中文化的意义 2019-04-26
草蟒 Python 中文 API 与 IDE 支持尝鲜 2019-04-26
一种改进中文 API 可读性的方法:参数不限于在末尾 2019-04-26
中文编程开发工具的生存模式探讨 2019-04-26
写给木兰编程语言研发团队的公开信 2019-04-26
为什么要急着为「木兰」编程语言贴上“造假”的标签? 2019-04-26