如何在java中打印给定变量的倍数?

时间:2016-05-08 14:44:15

标签: java variables math multiplication

有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 + " ");
        }
    }
} 

3 个答案:

答案 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/num1ceil得到结果并将其乘以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 + " ");
          }
    }