栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【蓝桥杯】基础练习--高精度加法,可供参看思路

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【蓝桥杯】基础练习--高精度加法,可供参看思路

先瞅瞅题目


当时我看到这题,都没仔细阅读直接开写,结果没通过,然后我又仔细读了一遍题目,大意了。。。先看我写的代码就知道我错哪了

import java.util.*;


public class Main {
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        //输入两个数
        int a =sc.nextInt();
        int b =sc.nextInt();
        String aa = Integer.toString(a);
        String bb = Integer.toString(b);
        //得到他们的长度
        int a_length = aa.length();
        int b_length = bb.length();
        int length = a_length>b_length?a_length:b_length;
        //数组大小又最长的决定,因为要进位所以长度+1,方便后面的遍历
        //写代码,和看代码是两回事,自己写了才知道为什么这样做
        int[] a1 = new int[length+1];
        int[] b1 = new int[length+1];
        //将数字按照题目要求放入数组
        for (int i =0;i=0;i--){
            //倒序遍历
            if (c[i] == 0){
                //因为结果可能为[4,1,2,0,0,0]
                continue;
            }
            System.out.print(c[i]);
        }
    }
}

写完后精神抖擞,高兴的上传,结果就和上面的图中所示,当场吐血,我想代码肯定没问题,我又看了看题,

我超,怎么大,忍不了了。。直接百度一手,重新写了个代码

import java.math.BigDecimal;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        BigDecimal a = scanner.nextBigDecimal();
        BigDecimal b = scanner.nextBigDecimal();
        BigDecimal c = a.add(b);
        System.out.println(c);

    }

}

这,这,就很简单了。。

所以昨晚这道题,我总结了2点
1.审题仔细
2.多查jdk


我写的代码虽然不能通过检测,但是也能给大家带点思路吧,

关于Java的BigDecimal详解,看可以看看这篇文章,同时也可以看看jdk里面的描述。
https://www.cnblogs.com/zhangyinhua/p/11545305.html

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/710698.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号