Java遇到需要多行数据一起从控制台读入的情况

在赛码刷笔试题的时候遇到这种需要一次性读入多行数据的情况找不到合适的解决方案,我的方法在赛码提交不能通过。
问题描述:
题目描述:
数列的定义如下: 数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。
输入描述:
输入数据有多组,每组占一行,由两个整数n(n<10000)和m(m<1000)组成,n和m的含义如前所述。
输出描述:
对于每组输入数据,输出该数列的和,每个测试实例占一行,要求精度保留2位小数。
样例:
样例输入
81 4
2 2
样例输出
94.73
3.41
我的代码需要多输入一个回车才能出结果
public class 数组的和 {
    public static void main(String[] args) throws IOException {
        t1();
    }

    static void t1(){
        Scanner sc = new Scanner(System.in);
        List<String> list = new ArrayList<>();
        do {
            String str = sc.nextLine().trim();
            list.add(str);
            System.out.print(str);
            if (str.equals(""))
                break;
        } while (true);
        list.remove(list.size() - 1);
        int size = list.size();
        for (int j = 0; j < size; j++) {
            String str = list.get(j);
            String[] trim = str.trim().split(" ");
            double res = 0;
            double begin = Double.parseDouble(trim[0]);
            int count = Integer.parseInt(trim[1]);
            for (int i = 0; i < count; i++) {
                res += begin;
                begin = Math.sqrt(begin);
            }
            System.out.printf("%.2f", res);
            if (j < size - 1) {
                System.out.println();
            }
        }
    }
}
因为nextLine()响应回车,所以每次都需要多输入一个回车才行,在赛码上提交不能通过,大佬们这个怎么解决?



#笔试题目#
全部评论
为什么不直接 两个in.nextInt()呢
点赞 回复 分享
发布于 2021-03-28 22:29
试试BufferedReader?
点赞 回复 分享
发布于 2021-03-29 15:47
谢谢大家,真正比赛的时候并不是这样的,这个我确实还是没有找到解决的办法,BufferedReader也不行
点赞 回复 分享
发布于 2021-03-29 15:50

相关推荐

三年之期已到我的offer快到碗里来:9硕都比不上9本
点赞 评论 收藏
分享
评论
1
2
分享
牛客网
牛客企业服务