найти сумму квадратов и кубов от 1 до 10

#java #sum

#java #сумма

Вопрос:

Я новичок в 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;
    }
}    
 

Комментарии:

1. sum = i * i; для квадратов. Я предполагаю, что теперь вы знаете, как делать кубы.

2. Вместо i того, чтобы вам нужно i * i получить квадрат i

Ответ №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
 

Ответ №2:

Попробуйте этот код для квадратов :

 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) для кубов.

Ответ №3:

Вы добавляете еще один параметр для повторного использования кода типа like

 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 resu<
}
 

Ответ №4:

В Java 8 вы могли бы использовать IntStream to range между 1 и LIMIT , выполняя операции отображения, чтобы получить суммы. Что-то вроде,

 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();