我是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;
}
}
答案 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+中,您可以在IntStream
和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();