大数乘法

先转成数字数组。在进行相乘。 先处理成字符样式。 之后先处理0,再转成StringBuffer。

public String solve (String s, String t) {
        // write code here

        int m=s.length();
        int[] arr1=new int[m];
        for (int i=0;i<m;i++) arr1[i]=s.charAt(i)-'0';

        int n=t.length();
        int[] arr2=new int[n];
        for (int i=0;i<n;i++) arr2[i]=t.charAt(i)-'0';

        int[] nums=new int[m+n];
        for (int i=0;i<m;i++){
            for (int j=0;j<n;j++){
                nums[i+j+1]+=arr1[i]*arr2[j];
            }
        }

        int carry=0;
        for (int i=nums.length-1;i>=0;i--){

            int num=carry+nums[i];
            nums[i]=num%10;
            carry=num/10;

        }

        int cur=0;
        while (cur< nums.length&&nums[cur]==0) cur++;

        StringBuilder sr=new StringBuilder();
        for (int i=cur;i< nums.length;i++){
            sr.append(nums[i]);
        }
        
        return sr.length()==0?"0":sr.toString();
        
    }



全部评论

相关推荐

珩珺:那些经历都太大太空了,实习的情况不了解,大创项目连名字、背景、目的及意义都没体现出来;地摊经济更是看完连卖的什么产品都不知道,项目成果直接写营收多少都更直观真实一点;后面那个校文体部的更是工作内容是组织活动整理流程,成果变成了当志愿者,而且你们学校本科学生会大一入学就直接当部长吗,志愿里面还提到了疫情防控,全面解封是22年12月的事情,可能时间上也有冲突。可能你花了钱人家就用AI给你随便写了点内容改了一下,没什么体现个性化的点
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务