用于循环打印的均匀分割数给定范围
问题描述:
编写接受来自用户的开始号码和结束号码的程序。对于该范围内的每个数字,它将打印均匀分割的所有数字(除此之外还有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 + " ");
}
}
}
}
整除
答
您的意见显示此不变:num1 <= num2
。因此,而不是与for (num2 = 1; num2 <= num1; num2 ++)
丢弃num2
输入,你想要的外环:
for (int n = num1; n <= num2; n++)
它要么调用一个辅助函数(包含循环),或至少要求从1
运行嵌套循环.. n
,测试剩下的东西。如果将内部循环放入适当命名的辅助函数中,您的老师会留下深刻的印象。提示:您需要为该内部循环声明另一个变量。
答
/* 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();
}
}
}
您的输入是什么? –