【问题标题】:For loop printing evenly divided number given a range对于给定范围的循环打印均匀划分的数字
【发布时间】:2017-10-16 00:02:43
【问题描述】:

编写一个程序,接受来自用户的起始编号和结束编号。对于该范围内的每个数字,它将打印所有将其均分的数字(除以 0 余数)。

我只能获得范围内的第一个数字,但它不会打印进行中的数字和最终数字。示例输入只是:85 89。输出应如下所示:

85 能被 1 5 17 85 整除

86 能被 1 2 43 86 整除

87 可以被 1 3 29 87 整除

88 可以被 1 2 4 11 22 44 88 整除

89 能被 1 89 整除

import java.util.*;
public class NumberRange { 
 public static void main(String args[]) {
    Scanner in = new Scanner(System.in);
    int num1;
    int num2;
    num1 = in.nextInt();
    num2 = in.nextInt();
    System.out.print(num1 + " is evenly divisible by ");
    for(num2 = 1; num2 <= num1; num2 ++)
      {
         if (num1 % num2 == 0)
         {
            System.out.print(num2 + " ");
         }
      }
 }
}

【问题讨论】:

  • 你的意见是什么?

标签: loops for-loop numbers range


【解决方案1】:

您的输入表现出这个不变量:num1 &lt;= num2。因此,与其用for (num2 = 1; num2 &lt;= num1; num2 ++) 丢弃num2 输入,不如使用以下外部循环:

for (int n = num1; n <= num2; n++)

它要么调用一个辅助函数(包含一个循环),要么至少调用一个从1 .. n 运行的嵌套循环,测试余数。如果您将内部循环放在适当命名的辅助函数中,您的老师会印象深刻。提示:您需要为该内部循环声明另一个变量。

【讨论】:

    【解决方案2】:
    /* package whatever; // don't place package name! */
    
    import java.util.*;
    import java.lang.*;
    import java.io.*;
    
    /* Name of the class has to be "Main" only if the class is public. */
    class Ideone
    {
        public static void main (String[] args) throws java.lang.Exception
        {
            Scanner in = new Scanner(System.in);
            int num1;
            int num2;
            num1 = in.nextInt();
            num2 = in.nextInt();
    
            for(int i = num1; i <= num2; i++)
            {
                System.out.print(i + " is evenly divisible by ");
                for(int j = 1; j <= i; j++)
                {
                    if (i % j == 0)
                    {
                            System.out.print(j + " ");
                    }
                }
                System.out.println();
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2014-01-22
      • 2011-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-02
      • 2015-07-10
      相关资源
      最近更新 更多