更新幂整数,使其在一行中

Update powered integers so its in one line

我的代码逻辑有效,但我遇到的问题在 System.out.println(); 行。

我的代码的作用示例:

这将根据您在输入参数 (n) 中输入的数字按顺序生成整数,并将它们乘以您在输入参数 (n) 中输入的值的幂。

这意味着下面的输入参数n等于3。

totalCue(3) = 1^3 + 2^3 + 3^3 这显然等于 36

我希望我的输出是这样的 1 + 8 + 27 = 36 但实际上是这样的

1 +  = 1
8 +  = 9
27 +  = 36

我该怎么做才能解决这个问题或仅更新 1 行中的所有数字。顺便说一句:我也试过只做 System.out.print(); 但它没有用。

我的代码如下:

public class CUETOTAL  {
    public int totalCue(int n)
    {
        int result = 0; 
        
       
        for (int x = 1; x <= n; x++){
            result += (int)Math.pow(x, n);
            System.out.print((int)Math.pow(x, n)+" + " + " = " +result);
        }
        return result;
        
        
    }
    
    public static void main(String args[]){
        
        CUETOTAL n = new CUETOTAL();
        
        n.totalCue(3);
        
        
    }
}
  1. 将您的结果附加到列表中
  2. 连接列表中的元素以获得 LHS
  3. 对列表中的元素求和得到RHS
        List<Integer> list = new ArrayList<>();

        // compute powers and append to list
        for (int x = 1; x <= n; x++){
            list.add((int) Math.pow(x, 3));
        }

        // generate the LHS by concatenating with " + " 
        String prefix = list.stream().map(String::valueOf).collect(Collectors.joining(" + "));

        // print the LHS and RHS sum 
        System.out.println(prefix + " = " + list.stream().reduce(Integer::sum).get());

你的逻辑有问题。您不想每次都打印“=结果”。

    String plus = "";
    for (int x = 1; x <= n; x++){
        int term = (int)Math.pow(x, n);
        result += term;
        System.out.print(plus + term);
        plus = " + ";
    }
    System.out.println(" = " + result);

两个注意事项:

  1. 我添加了一个额外的变量term - 不要做两次相同的计算。

  2. 字符串 'plus' 非常适合在第一个术语之前不打印任何内容,然后在每个后续术语上打印“+”。

使用 ternar 进行字符串连接。

for (int x = 1; x <= n; x++){
        int pow = (int)Math.pow(x, n);
        result += pow;
        String concat = x == n ? " = " : " + ";
        System.out.print(pow + "" + concat);
    }
    System.out.print(result);