当前位置: 首页 > 知识库问答 >
问题:

系列的JAVA循环[闭合]

虞正业
2023-03-14

我只收到一个测试用例的错误。

问题链接:https://www.hackerrank.com/challenges/java-loops/problem?isFullScreen=trueJAVA黑客等级循环问题

Sample Input

2
0 2 10
5 3 5
Sample Output

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

我得到了精确的输出,但是测试用例失败了。

Java代码

import java.util.*;
import java.io.*;

class Solution{
    public static void main(String []argh){
        Scanner sc = new Scanner(System.in);
        
        int q = sc.nextInt();
        if (q==1){
        int a = sc.nextInt();

             System.out.println();

            
        }else{

        int a = sc.nextInt();
        int b = sc.nextInt();
        int n = sc.nextInt();
        
        int sum, x ;
        sum = a;
        

        for (int i=0 ; i<n ; i++){
            x = (int) (Math.pow(2,i)*b);
            sum = sum + x ;

            System.out.print(sum+" ");
        }
        }
            
    }
}

共有1个答案

杨良才
2023-03-14

这是我想出的解决办法。需要对输出进行一些修改,这很容易。

    public static List<Integer> generateSequence(int a, int b, int n) {
    List<Integer> list = new ArrayList<Integer>();
    int currentValue = 0;
    for (int i = 0; i < n; i++) {
        int value = (int) Math.pow(2, i) * b;
        if (i == 0) {
            value += a;
        }
        currentValue += value;
        list.add(currentValue);
    }

    return list;
}

public static void main(String[] args) throws IOException {
    List<List<Integer>> lists = new ArrayList<>();
    try (Scanner scanner = new Scanner(System.in)) {
        int q = scanner.nextInt();
        for (int i = 0; i < q; i++) {
            int a = scanner.nextInt();
            int b = scanner.nextInt();
            int n = scanner.nextInt();              
            lists.add(generateSequence(a, b, n));
        }
    }
    
    for (List<Integer> list : lists) {
        System.out.println(list);
    }
}
 类似资料:
  • 我只得到一个测试用例的错误。 问题链接:https://www.hackerrank.com/challenges/java-loops/problem?isFullScreen=trueJAVA黑客等级循环问题 我得到了精确的输出,但是测试用例失败了。 Java代码:

  • 你好,有人能帮我在java中使用我的当循环代码吗?我似乎在这里找不到解决方案,我希望有人能推荐或找到一个解决方案,我如何才能创建像(1, -2, 3, -4, 5, -6)这样的正确输出。谢谢!

  • 如果您希望一遍又一遍地运行相同的代码,并且每次的值都不同,那么使用循环是很方便的。 document.write(cars[0] + "<br>"); document.write(cars[1] + "<br>"); document.write(cars[2] + "<br>"); document.write(cars[3] + "<br>"); document.write(cars[4]

  • 想改进这个问题吗 通过编辑此帖子,更新问题,使其只关注一个问题。 什么是最好的 注意:我知道我可以使用: 但要做到这一点,我需要将所有变量声明为原子整数,这使得代码冗长 一定有比使用原子整数更好的方法。有?

  • do/while 循环是 while 循环的变体。该循环会执行一次代码块,在检查条件是否为真之前,然后如果条件为真的话,就会重复这个循环。 语法结构如下 do { statement } while (expression) do { 需要执行的代码 } while (条件);  demo var aNumbers = new Array(); var sMessage = "你输入了

  • 假设我有一个大小为[10]的数组,当该数组被填满时,我想实现一个FIFO结构,而不是它只是填满了,因此无法向数组中添加新的东西,并抛出旧的东西。 例如,如果我有一个包含汽车制造商的字符串数组,当我的数组中有10个制造商时,我希望删除最旧的条目,添加最新的条目,但要考虑kepping FIFO。我如何在这样的方法中实现它: