我是Java新手,为了练习,我在互联网上找到了一项任务:
"在你输入的两个数字之间找到所有完美的数字。"
顺便说一下——一个完美的数字是一个自然数,等于它所有除数的和。所以我开始工作,遇到了这样一个问题,当我输入两个数字时。
例如:1100
,我在控制台中得到正确答案:6,28
。但是,如果第一个数字是,例如,100
,第二个是500
,我会将此输出输出到控制台:6,28496,
,而我应该只得到496
。也就是说,出于某种原因,最小值不会缩短对完美数的搜索。
这就是我的结局:
import java.util.Scanner;
public class IsPerfect {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int min = in.nextInt();
int max = in.nextInt();
System.out.println(min +" to "+max+" perfect numbers:");
for (min = 1; min <= max; min++) {
int sum = 0;
for (int e = 1; e < min; e++) {
if ((min % e) == 0) {
sum += e;
}
}
if (sum == min) {
System.out.print(sum+ ",");
}
}
}
}
如果有人对如何纠正这个错误有任何建议,我将不胜感激。
我想这就是重点。
import java.util.Scanner;
public class IsPerfect {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int min = in.nextInt();
int max = in.nextInt();
System.out.println(min +" to "+max+" perfect numbers:");
for (int i = min; i <= max; i++)
{
int sum = 0;
for (int j = 1; j < i; j++)
{
if (i % j == 0)
sum = sum + j;
}
if (sum == i)
System.out.println(i+", ");
}
}
}
无论用户输入什么,您都将最小值分配给1
。更改外部for循环,从用户输入的最小值开始:
import java.util.Scanner;
public class IsPerfect {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int min = in.nextInt();
int max = in.nextInt();
System.out.println(min +" to "+max+" perfect numbers:");
for (; min <= max; min++) {
int sum = 0;
for (int e = 1; e < min; e++) {
if ((min % e) == 0) {
sum += e;
}
}
if (sum == min) {
System.out.print(sum+ ",");
}
}
}
}
问题内容: 它给出以下内容: 但是我想获得下个月的定义,该怎么办? 问题答案: 表达方式 给。我们期望这两个值都指向每月的最后几天。如果将1天添加到值中,我们将获得下个月的第一天, 会给我们1个月的预期时间。因此,让我们检查是否有一个月的最后两天,在这种情况下,我们要返回第二天的年龄间隔。在其他情况下,我们将返回原始值的年龄间隔: 一些例子:
我只是在玩一些代码,我似乎不明白我哪里出错了。 我有一个“数字”字段,存储01-20之间的数字,后跟一个字母。我已经创建了一个局部变量,将前2个数字存储为字符串,但如果范围在01-20之间,我似乎无法使范围返回真。注意00不是有效的数字。 有什么想法吗?
我正在我的大学课程中研究一个简单的JAVA问题。我被这个节目难住了。我将展示我到目前为止所拥有的,并给出我必须回答的问题。我也在StackOverflow上看了一个类似的问题,但它不是同一个问题,所以没有帮助。我需要编写的程序是: 编写一个使用“while”循环执行以下步骤的程序: a、 )提示用户输入两个整数:“firstNum”和“secondNum”(firstNum必须小于secondNu
问题内容: 如何使用PHP查找两个日期之间的天数? 问题答案:
我正在尝试解决此问题: 一位物理教授给班上的学生做项目。学生们必须组成一个两人小组来做这个项目。教授让学生来决定队伍。一个班级的学生人数将是偶数。 每个学生都有自己的知识水平。它告诉每个学生有多少知识。一个团队的知识水平是两个学生知识水平的总和。 学生们决定组成小组,这样知识最高的团队和知识最低的团队之间的差异就最小了。 投入 输入的第一行将包含测试用例的数量t;在接下来的t行中,第一个数字是n,
本文向大家介绍查找两个数字的GCD,包括了查找两个数字的GCD的使用技巧和注意事项,需要的朋友参考一下 在数学中,最大公约数(GCD)是最大可能的整数,该整数将两个整数相除。条件是数字必须为非零。 我们将遵循欧几里得算法来找到两个数字的GCD。 输入输出 算法 输入:两个数字a和b。 输出: a和b的GCD。 示例 输出结果