n个元素的数量之和

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

我有一个代码,用于计算n个数字的和,但这个程序有一个小问题,对于n=4,将是这样的,sum=1*2+1*2*3+1*2*3*4.我已经开始用for,但突然输出几乎与现实相差无几,但仍然很远:))。我不想成为程序员开玩笑的对象:))。所以帮我理解一下这背后的概念...我离答案还很远。

java sum numbers pseudocode
1个回答
0
投票

你可以试着运行下面的代码 -> 试着理解其中的逻辑。

你的方法应该是这样的

public static void main(String args[])
{

    int n = 4;
    int sum = 0;
    int mul = 1;
    for(int i=2;i<=n;i++)
    {
        for (int j=2;j<=i;j++)
        {
            mul = mul * j;
        }
        sum = sum+mul;
        mul=1;
    }


    System.out.println("the answer is " + sum);
}

0
投票

也可以试试这个代码。

    sum=0;pro=1;
    for(i=2;i<=n;i++){   //Since you did not mentioned the answer for n=1...
        pro = pro * i;   // this will be like 2 , 2*3 , 2*3*4 ... so on at each step
        sum += pro;
    }
    cout<<sum;

它可以在O(n)时间内完成。


0
投票

这是你在java 8中可能做的。如果n < 2,那么这将无法工作。

      int result = IntStream.rangeClosed(2, n)
              .map(x -> IntStream.rangeClosed(1, x).reduce(1, (first, second) -> first * second))
              .sum();
© www.soinside.com 2019 - 2024. All rights reserved.