当我应该得到 0、3、6、9 时,我却一直得到 0 作为我的答案。另外如何将数组的索引添加到数组中?不确定我是否做得正确。
/**
* This returns an int array containing a multiplication table. Your method
* should start by allocating an array whose length is {@code numEntries} (e.g.,
* the second parameter). You should then set the value of each entry in the
* array equal to {@code constant} (e.g., the first parameter) times the index
* of that entry.<br/>
* Precondition: numEntries MUST BE 0 or larger. (PRECONDITIONS SPECIFY
* RESPONSIBILITIES ON A METHOD'S CALLER; YOU SHOULD ASSUME THIS IS TRUE.)
*
* @param constant
* Value whose multiplication table is to be calculated.
* @param numEntries
* Length of the array to be returned
* @return Array of the appropriate length containing the multiplication table
* for {@code constant}.
*/
public static int[] generateTable(int constant, int numEntries) {
int arr[];
arr=new int[numEntries];
int i;
int ans;
for(i=0;i<arr.length;i++){
ans=(arr[i])*constant;
System.out.println(ans);
arr[i]=ans;
}
System.out.println(arr);
return arr;
}
public static void main(String[] args) {
generateTable(3,4);
}
最佳答案
您想要ans = i *constant;
。但是,我会消除 ans
。我也只会在调用者中打印。就像,
public static int[] generateTable(int constant, int numEntries) {
int[] arr = new int[numEntries];
for (int i = 0; i < arr.length; i++) {
arr[i] = i * constant;
}
return arr;
}
并且,
public static void main(String[] args) {
System.out.println(Arrays.toString(generateTable(3, 4)));
}
当然,在 Java 8+ 中,您也可以使用 lambda 来完成此操作。就像,
public static int[] generateTable(int constant, int numEntries) {
return IntStream.range(0, numEntries).map(i -> i * constant).toArray();
}
关于java - 如何在数组中添加indexOf以及如何向数组添加元素(java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52415504/