计算一个范围内输入用户的数量乘以多少个数字

时间:2017-06-08 11:38:50

标签: java

我做练习准备考试时遇到了问题。 大家会帮帮我吗?非常感谢

  

写一个程序输入一个100到200(含)范围内的整数。如果用户输入无效输入,则算法应重新提示用户,直到输入有效。然后,您的算法应计算500到1000之间的数字,这是数字输入的倍数。最后,计数应输出给用户。你应该好好利用子模块。

这是我的代码

import java.util.*;

public class Exam3
{
    public static void main(String args[])
    {
        int count = 0;
        int input = 0;

        Scanner sc = new Scanner(System.in);

            System.out.println("Enter number: ");
            input = sc.nextInt();

           while(input < 100 || input > 200)
            {
                System.out.println("Enter number between 100 to 200");
                input = sc.nextInt();

                count ++;

            }   
          System.out.println("count is: " + count);     
    }
    public static void int getCount(int input, int count)
    {
        for(int i = 499;i <= 1000; i++ )
        {
                if(i % input==0)
                {
                    count++;
                }            
        }
        return count;
    }
}

1 个答案:

答案 0 :(得分:2)

算法应该是:

输入正确后,找到范围为[500,1000]的所有倍数。数数吧。

检查所有数字的方法很糟糕,正如我们从数学知识中所知,k*ak*a + a之间没有可被a整除的数字。< / p>

了解并input我们将temp的{​​{1}}扩展为input input。如果它在[500, 1000]范围内,我们会扩大我们的计数器。就这么简单。

public static void main(String args[]) {
    int count = 0;
    int input = 0;

    Scanner sc = new Scanner(System.in);
    System.out.println("Enter number: ");
    input = sc.nextInt();

    while (input < 100 || input > 200) {
        System.out.println("Enter number between 100 to 200");
        input = sc.nextInt();
        count++;
    }
    System.out.println(input + " fits " + count(input) + " times");
}


private static int count(int input) {
    int result = 0;
    int temp = input;
    while (temp <= 1000) {
        if (temp >= 500) {
            result++;
        }
        temp += input;
    }
    return result;
}

根据您的代码,我看到了一些问题。我会指出它们,因为它对于练习Java很重要。

  • 方法可以是void或返回int。你不能拥有void int。在这种情况下,我们返回int,因此int是返回类型
  • 坚持Java样式非常重要。不要放太多空行,保持缩进。
  • 使用EclipseIntelliJIntelliJ更专业)。他们会指出未使用的代码块,因此您会知道getCount没有被调用。