43. Multiply Strings

来源:互联网 发布:i like it what is it 编辑:程序博客网 时间:2024/06/08 16:30

这是一套实现大数的乘法,把大数的加法也加在里面了,首先来看!

这里十分清楚乘法的数学分析,在这里不多讲解,得到一个int【num1.length()+num2.length()】的数组;
然后进行加法运算,设置一个carrybit(进位数)=数组的数%10;
最后从第一个不为0的数放入string中。
最后考虑“0”的情况,string等于“0”应该用string.equal(“0”)表示。具体代码如下:

public static String multiply(String num1, String num2) {        if (num1.equals("0")||num2.equals("0")) return "0";        else {        int len1=num1.length();        int len2=num2.length();        int[] temp=new int[len1+len2];        for (int i = len1-1; i >=0; i--) {            for (int j = len2-1; j >=0; j--) {                temp[i+j+1]+=(num1.charAt(i)-'0')*(num2.charAt(j)-'0');            }        }        int carrybit=0;        for (int i = temp.length-1; i >=0; i--) {            temp[i]+=carrybit;            carrybit=temp[i]/10;            temp[i]=temp[i]%10;        }        int left=0;        while (left<temp.length&&temp[left]==0) {            left++;        }        StringBuffer sb=new StringBuffer();        for (; left < temp.length; left++) {            sb.append(temp[left]);        }        return sb.toString();              }    }
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 红警2游戏出错怎么办 猛犸牙上油花了怎么办 吃了细菌的食物怎么办 易拉罐罐头拉环断了怎么办 衣服上有火锅味怎么办 衣服沾上火锅味怎么办 做杨梅罐头里面好多小白虫怎么办 一地两检手续怎么办 剩米饭变干硬了怎么办 吃剩的米饭变硬怎么办 误食发热包的水怎么办 玻璃饭盒加热后盖子打不开怎么办 玻璃饭盒盖子被吸住了怎么办 微波炉加热饭盒盖子打不开怎么办 铁饭盒盖子打不开了怎么办 塑料玻璃饭盒打不开了怎么办 方便火锅没有发热包怎么办 加热包的水溢出怎么办 军用黄脸盆坏了怎么办 白瓷洗手盆发黄怎么办 挎包没有拉链东西容易掉怎么办 斜挎包肩带长了怎么办 3个月宝宝不吃奶怎么办 米饭扔厕所堵了怎么办 门过梁搭接不够怎么办 华为g7开不了机怎么办 警务通手机丢了怎么办 手机被伪基站覆盖怎么办 听了高频率声音怎么办 qq音乐签到没了怎么办 手机qq音乐不能播放怎么办 台式电脑放歌没有声音怎么办 微信图片上传大愎怎么办 行车记录仪内存卡丢了怎么办 投资项目失败lp的钱怎么办 无线网无ip分配怎么办 为什么电脑的暴风影音打不开怎么办 电枪充电板进水怎么办 捡到一颗子弹该怎么办 防弹衣只保护身体那手臂怎么办? 被子被宝宝尿湿怎么办