在 Java 中格式化输出

问题描述 投票:0回答:1

我目前正在 HackerRank 上进行一些基本练习(这是我使用 Java 的第三天)。我刚刚写完代码:

import java.io.*;
import java.util.*;
import java.lang.Math;

public class Solution {

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    
    int seriesInput = scanner.nextInt();
    
    for (int q = 0; q < seriesInput; q++) {
        int inputA = scanner.nextInt();
        int inputB = scanner.nextInt();
        int inputN = scanner.nextInt();
        double s0 = inputA + Math.pow(2, 0) * inputB;
        int s2 = (int) s0;
        System.out.println(s2);
        for (int i = 1; i < inputN; i++) {        
            s0 += Math.pow(2, i) * inputB;
            int s1 = (int) s0;
            System.out.println(s1);
        } 
    } scanner.close();
}

}

我希望输入看起来像这样

  • 2 6 14 30 62 126 254 510 1022 2046
  • 8 14 26 50 98

但是,我的代码在单独的行上返回每个数字。我一直在尝试几种方法,但它不会按照我想要的方式工作(例如将 println 更改为 print,或使用字符串格式)。

由于我是初学者,我的代码看起来并不是那么理想。感谢任何帮助!

java for-loop format printf println
1个回答
0
投票
import java.io.*;
import java.util.*;
import java.lang.Math;


public class Solution {

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    
    int seriesInput = scanner.nextInt();
    
    for (int q = 0; q < seriesInput; q++) {
        int inputA = scanner.nextInt();
        int inputB = scanner.nextInt();
        int inputN = scanner.nextInt();
        double s0 = inputA + Math.pow(2, 0) * inputB;
        int s2 = (int) s0;
        System.out.print(s2 + " ");
        
        for (int i = 1; i < inputN; i++) {        
            s0 += Math.pow(2, i) * inputB;
            int s1 = (int) s0;
            System.out.print(s1 + " ");
        } System.out.println();
    } scanner.close();
}

}

这是完整的答案。谢谢大家的帮助!

© www.soinside.com 2019 - 2024. All rights reserved.