找到从1到10的正方形和立方体的总和

时间:2016-10-16 15:53:33

标签: java sum

我是Java的新手,我正试图从1到10找到正方形和立方体的总和。但我只知道如何找到1到10之间的总和,我认为它们有点类似但是我很难搞清楚。

public class sumNumber {
    public static void main (String[] args) {
        final int LIMIT = 10;

        System.out.println("The sum of the numbers from 1 to " + LIMIT + " is " + sumNumber(LIMIT));
    }

    public static int sumNumber (int number) {
        int sum = 0;
        for (int i=1 ; i <= number ; i++) {
            sum += i;
        }

        return sum;
    }
}    

4 个答案:

答案 0 :(得分:1)

我建议这段代码:

arr = [1,2,3,4,5,6,7,8,9,10];
var sum = arr.map(x => x*x*x).reduce((a,b) => a+b);
console.log(sum); // 3025

如果你想要更通用的ES6功能:

var sumCube = n => Array(n).fill(0).map((x, i) => Math.pow((i+1),3)).reduce((a,b) => a+b);
console.log(sumCube(10)); // 3025

答案 1 :(得分:0)

尝试使用广场代码:

public static int sumNumber (int number) {
    int sum = 0;
    for (int i=1 ; i <= number ; i++) {
        sum += Math.pow(i,2);
    }

    return sum;
}

对于多维数据集执行Math.pow(i,3)

答案 2 :(得分:0)

您再添加一个参数以重复使用类型

之类的代码
public static int CalculateNumber (int limit,string type) 
{   
    int result=0;
    switch(type)
    { 
        case "sum":
        for (int i=1 ; i < = limit ; i++) 
        {
            result += i;
        }
        break;

        case "square":
        for (int i=1 ; i < = limit ; i++) 
        {
            result += i*i;
        }
        break;

        case "cube":
        for (int i=1 ; i < = limit ; i++) 
        {
            result += i*i*i;
        }
        break;
    }
    return result;
}

答案 3 :(得分:0)

在Java 8+中,您可以在IntStreamrange之间使用1LIMIT,执行地图操作以获取总和。像,

int sum = IntStream.rangeClosed(1, LIMIT).sum();
int sum2 = IntStream.rangeClosed(1, LIMIT).map(x -> x * x).sum();
int sum3 = IntStream.rangeClosed(1, LIMIT).map(x -> x * x * x).sum();