在赛码刷笔试题的时候遇到这种需要一次性读入多行数据的情况找不到合适的解决方案,我的方法在赛码提交不能通过。
问题描述:
题目描述:数列的定义如下: 数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。输入描述:输入数据有多组,每组占一行,由两个整数n(n<10000)和m(m<1000)组成,n和m的含义如前所述。输出描述:对于每组输入数据,输出该数列的和,每个测试实例占一行,要求精度保留2位小数。样例:样例输入81 42 2样例输出94.733.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()响应回车,所以每次都需要多输入一个回车才行,在赛码上提交不能通过,大佬们这个怎么解决?
全部评论
(3) 回帖