Java显示10个数字的倍数并将它们相加

时间:2017-10-25 06:55:34

标签: java

在这个程序中,它会询问一个数字,然后显示该数字的10倍,然后对它们求和,但它必须是这样的:

数字= 6;

06,12,18,24,30,36,42,48,54,60

60,54,48,42,36,30,24,18,12,20

总和= 324

显示数字的部分没有问题,问题是当我必须总结它们时。我尝试使用列表来保存每行的数字,然后使用第一行/列表并对其求和,但我无法使其工作。

    ArrayList<Integer> i1 = new ArrayList();
    ArrayList<Integer> i2 = new ArrayList();
    System.out.println("Introduce un número:\n"); // Asks you a number
    int n1=scan.nextInt();

    int add_i = 0;
    int rest_i = n1 * 11;

    i1.add(add_i);
    i2.add(rest_i);

    while (add_i <= n1 * 9) // while add_i is less or equal to n1 * 9
    {
        add_i += n1; // suma n1 a i
        System.out.print(i1 + "  "); // Prints the result
    }

    System.out.println("  ");

    while (rest_i >= 10) // while rest_i is greater or equal than 10
    {
        rest_i -= n1; // Resta n1 a i
        System.out.print(i2 + "  "); // Prints result
    }

同样在我的节目中,暗示不会出现。

2 个答案:

答案 0 :(得分:1)

不确定你想要采用什么逻辑,但它似乎比

困难得多
    Scanner scan = new Scanner(System.in);
    System.out.println("Enter number : ");
    int input = scan.nextInt ();
    int sum = 0;

    for (int loop = 1; loop <= 10; loop++) {
        int out = loop * input;
        sum += out;
        System.out.println(out);
    }

    // and down
    for (int loop = 10; loop >= 1; loop--) {
        int out = loop * input;
        System.out.println(out);
    }

    System.out.println("sum is "+ sum);

答案 1 :(得分:0)

试试这个:

int sum = IntStream.iterate(startNumber, n -> n+startNumber)
  .limit(10)
  .peek(System.out::println)
  .sum();

免责声明因为downvotes。这是一种替代解决方案。当你完全理解循环时我可以看一下它。