我是java的初学者,我被困住了。请帮帮我谢谢!所以这是我的代码到目前为止。程序应该询问用户最大数量,然后程序应该计算从1到最大的每个数字以及方形。然后在最后它应该添加它们。
请输入最大数字:
5
Arr1 0 Arr2 0 Arr3 0
Arr1 1 Arr2 1 Arr3 1
Arr1 5 Arr2 5 Arr3 5
Arr1 14 Arr2 14 Arr3 14
Arr1 30 Arr2 30 Arr3 30
Arr1 55 Arr2 55 Arr3 55
平方和为55
但是当我这样做时,所有Arr都有0,总和为0
import java.util.Scanner;
public class SumSquareArr {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Please enter the max number: ");
int max = input.nextInt();
int[]arr1 = new int[max+1];
int[]arr2 = new int[max+1];
int[]arr3 = new int[max+1];
int total = 0;
int i = 1;
// For-loop to calculate
for (i = 1;i <= max;i++){
int square;
square = i*i;
arr1[square] = arr1[i-1] + i;
i = 1;
// While-loop to calculate
while (i <= max) {
arr2[square] = arr2[i-1] + i;
i++;
}
i = 1;
// Do-While-loop to calculate
do
arr3[square] = arr3[i-1] + i;
while (++i <= max);
for (i = 0; i <= max; i++)
System.out.println("Arr1 " + arr1[i] + " Arr2 " + arr2[i] + " Arr3 " + arr3[i]);
}
System.out.println("Sum of Squares is " + arr1[total]);
}
}
答案 0 :(得分:0)
你的行
arr1[square] = arr1[i-1] + i;
应该说
arr1[i] = arr1[i-1] + square;
与arr2
和arr3
类似。
}
之后你还错过arr1[square] = arr1[i-1] + i;
,{
之前错过了System.out.println("Arr1 " + arr1[i] + " Arr2 " + arr2[i] + " Arr3 " + arr3[i]);
在正确嵌套循环后,您需要在square = i*i;
循环和while
循环内重复do-while
。