我被卡住了......我一直试图在方法中使用数组来计算1-100范围内可被10整除的数字的数量。 这是我的代码:
import java.util.Scanner;
import java.util.Random;
public class Journal5a {
// METHOD
public int[] creatArray (int size)
{
int[] array = new int[size];
Random r = new Random();
for (int i = 0; i < array.length; i++)
array[i] = r.nextInt(100);
return array;
}
public int[] DivByTen()
{
int x = 0;
int y[] = this.creatArray(1);
for (int i = 0; i < y.length; i++)
if (y[i] % 10 == 0)
{
x++;
}
return x;
}
public int[] printArray ()
{
int[] myArray = this.creatArray(1);
for (int i = 0; i<myArray.length; i++)
System.out.println(myArray[i]);
return myArray;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Journal5a j5a = new Journal5a();
j5a.DivByTen();
}
所以我的输出是:
there is 10 numbers divisible by 10
另一个问题是DivByTen方法中使用的x没有被返回。
答案 0 :(得分:0)
你的createArray()方法用0-99的随机数填充数组,因此不清楚10可以分割多少数字。
for(int i = 0; i < size; i++) {
array[i] = i;
}
将创建一个值为0到size -1的数组。
第二个问题是你的返回类型是int []而不是int
答案 1 :(得分:0)
首先,创建并填充数组。对于范围1
到100
,您需要传入100
,并从i
开始1
(或将1
添加到i
{1}}初始化数组时;)
private static int[] creatArray(int size) {
int[] arr = new int[size];
for (int i = 0; i < size; i++) {
arr[i] = i + 1;
}
return arr;
}
接下来,计算一些multiple
的倍数。像,
private static int countMultiples(int[] arr, int multiple) {
int count = 0;
for (int val : arr) {
if (val != 0 && val % multiple == 0) {
count++;
}
}
return count;
}
最后,调用上面的方法并输出结果
public static void main(String[] args) {
final int multiple = 10;
int count = countMultiples(creatArray(100), multiple);
System.out.printf("There are %d numbers divisible by %d.", count, multiple);
}
输出
There are 10 numbers divisible by 10.