有3个号码给用户。这三个数字定义了倍数和范围。例如,如果这三个数字是(3,6,17),程序应打印6,9,12,15。第一个数字是基数,第二个和第三个数字是最低数字和最高数字(范围)。我也知道我不需要所有的import语句。
这是我到目前为止所做的,但我不确定如何继续。
import java.util.*;
import java.io.*;
import java.text.*;
import java.lang.Math.*;
public class printMultiplesOf{
public static void main (String [] args){
Scanner reader = new Scanner(System.in);
int num1, num2, num3;
System.out.println("Enter the 1st number");
num1 = reader.nextInt();
System.out.println("Enter the 2nd number");
num2 = reader.nextInt();
System.out.println("Enter the 3rd number");
num3 = reader.nextInt();
printMultiplesOf(num1, num2, num3);
}
public static void printMultiplesOf(int num1, int num2, int num3){
int start = num2
int end = num3
for (int i = num1; i <= num1; i++){
System.out.println(i + " ");
}
}
}
答案 0 :(得分:1)
遍历范围内的所有数字,并检查它是否为倍数。
public static void printMultiplesOf(int num1, int num2, int num3) {
for(int i=num2; i<= num3; i++){
if(i % num1 == 0)
System.out.print(i +" ");
}
}
答案 1 :(得分:0)
这里的主要问题是找到循环的起点和终点。起点需要第num1
个等于或大于num2
的数字。您可以使用浮点除法num2/num1
,ceil
得到结果并将其乘以num1
。同样,循环的结束点应该是num1
可以整除的最大数,小于或等于num3
。你可以通过使用整数除法num3/num1
来划分它(这将有效地floor
结果,然后再将它再乘以num1
。从那以后,它只是一个问题循环的步骤大小为num1
。例如:
public static void printMultiplesOf(int num1, int num2, int num3) {
int start = ((int) Math.ceil((double) num2 / num1)) * num1;
int end = (num3 / num1) * num1;
for (int i = start; i <= end; i+= num1) {
System.out.println (i + " ");
}
}
答案 2 :(得分:0)
这是你的功能。您只需在每次循环执行时将num1添加到i。 我尝试了它,它正在工作;)
public static void printMultiplesOf(int num1, int num2, int num3){
int multi = num1;
int start = num2;
int end = num3;
for (int i = start; i <= end; i += multi){
System.out.println(i + " ");
}
}