Java 计算完全数
看,我有一个布尔方法,它通过修改一个除数来获得除数,这个除数由for循环检查并确定为true(不是第一个,它只是循环程序以确定输入量)。 我不确定是否有办法将循环的多个结果相加,但这正是我需要做的。现在我正在显示循环的结果,但这是为了调试,最后输出的结果将是是否丰富(添加的除数大于数字)、完美(添加的除数等于数字)或不足(添加的除数小于数字) 以下是eclipse中的代码:Java 计算完全数,java,boolean,static-methods,boolean-logic,perfect-numbers,Java,Boolean,Static Methods,Boolean Logic,Perfect Numbers,看,我有一个布尔方法,它通过修改一个除数来获得除数,这个除数由for循环检查并确定为true(不是第一个,它只是循环程序以确定输入量)。 我不确定是否有办法将循环的多个结果相加,但这正是我需要做的。现在我正在显示循环的结果,但这是为了调试,最后输出的结果将是是否丰富(添加的除数大于数字)、完美(添加的除数等于数字)或不足(添加的除数小于数字) 以下是eclipse中的代码: import java.util.*; public class PerfectNumber { /**
import java.util.*;
public class PerfectNumber {
/**
* @param args
*/
public static void main(String[] args) {
for(int i = 0; i < 15; i++)
{
Scanner reader = new Scanner(System.in);
int number = 0;
int divisor = 1;
int addnum = 0;
System.out.println("Please input a number to check if it is perfect, abundant, or deficient");
number = reader.nextInt();
for(divisor = 1; divisor < number; divisor++)
{
isDivisor(number, divisor);
if(isDivisor(number, divisor) == true)
{
System.out.println(divisor);
}
}
}
}
static boolean isDivisor(int number, int divisor)
{
if (number % divisor == 0)
return true;
else
return false;
}
}
import java.util.*;
公共类完备性编号{
/**
*@param args
*/
公共静态void main(字符串[]args){
对于(int i=0;i<15;i++)
{
扫描仪阅读器=新扫描仪(System.in);
整数=0;
整数除数=1;
int addnum=0;
System.out.println(“请输入一个数字以检查它是否完美、丰富或不足”);
number=reader.nextInt();
for(除数=1;除数<数字;除数++)
{
isDivisor(数、除数);
if(isDivisor(数字、除数)==真)
{
System.out.println(除数);
}
}
}
}
静态布尔isDivisor(整数、整数除数)
{
if(数字%除数==0)
返回true;
其他的
返回false;
}
}
如果要在循环中求和,可以使用以下语句:
Int sum;
// your for loop start
If ( isDivisor(number, divisor))
sum += divisor;
// end of loop
//here you can do the comparison.
在if语句中不需要与true进行比较。此外,只有在if主体中只有一条语句时,此代码段才有效。如果需要执行多项操作,则必须将整个代码段括在括号中
此外,您第一次打电话给isDivisor也没用,因为您没有用所获得的价值做任何事情。回答您的直接问题,什么闻起来像是家庭作业问题;) 我不确定是否有办法将循环的多个结果相加 您可以检查函数的返回,就像您已经在做的那样,并增加一个计数器
public boolean isSeven(int x){
return x == 7;
}
public static void main(String[] args){
int sumOfSevens= 0;
int i = 0;
while(i < 10){
if(isSeven(7)){
sumOfSevens = sumOfSevens + 7; // or +=
++i;
}
}
// At this point sumOfSevens = 70;
}
公共布尔isSeven(int x){
返回x==7;
}
公共静态void main(字符串[]args){
int-sumOfSevens=0;
int i=0;
而(i<10){
if(偶数(7)){
sumOfSevens=sumOfSevens+7;//或+=
++一,;
}
}
//在这一点上,sumOfSevens=70;
}
您不需要isDivisor
,因为它等于以下表达式:
number % divisor == 0
只要把除数加起来:
int numDivSum = 0;
for(divisor = 1; divisor < Math.sqrt(number); divisor++)
{
if(number % divisor == 0)
{
numDivSum += divisor;
}
}
int numDivSum=0;
for(除数=1;除数
检查
numDivSum
是否完美、丰富或不足。为了澄清,您的意思是如果isDivisor
返回true,您希望将该除数(而不是数字)添加到所有其他trueisDivisor
数字中?