gpt4 book ai didi

java - 将整数从一种方法传递到另一种方法

转载 作者:太空宇宙 更新时间:2023-11-04 08:07:49 26 4
gpt4 key购买 nike

尝试用两种方法编写程序。第一个接受一个整数并打印它的除数以及它的除数之和,第二个是一个 boolean 函数,如果给定的整数等于它的除数之和(完美数),则返回。

我第一个方法做得很好,但我想从中取出整数和并在第二个方法中使用它,这可能吗?我花了相当长的时间尝试研究它但没有成功。

像往常一样,任何和所有的建议都会受到赞赏。到目前为止的代码如下。

import java.util.Scanner;
import java.io.*;

class arrayTest {

public static int sumFacs(int n) {

int sumDiv[] = new int[50];
int c = 0;
int sum=0;

if(n<0){
System.out.println("Sorry I dont do negatives!");
}

else {

for(int i=1; i<=n; i++){
int j = n%i;

if(j==0){
System.out.println( i + " is a divisor of " + n + "\n");
sumDiv[c] = i;
c++;
}

}

for (int i=0; i<sumDiv.length; i++){
sum += sumDiv[i];}

System.out.println("The sum of the divisors of " + n + " is: " + sum);

}
return sum;
}

public static boolean isPerfect(int n, int sum) {

boolean b = (n == sum);
if(b){
System.out.println( n + " is a perfect number.");
}

else {
System.out.println( n + " is not a perfect number.");
}
}




public static void main(String[] args){

Scanner scanner = new Scanner(System.in);
System.out.println("Please enter a positive integer.");
int n = scanner.nextInt();

sumFacs(n);
int sumDivisors = sumFacs(n);
System.out.println(isDivisors(sumFacs(n), n));

isPerfect(n, sum);
}
}

最佳答案

您的 sumFacs 返回一个整数,因此您绝对可以在 isPerfect 方法中使用它产生的任何结果。正如您现在所做的那样,您将相同的数字传递给方法。为了做你想做的事,你需要做这样的事情:

int sumFacsResult = sumFacs(n);     //Take whatever value sumFacs yields, store it in sumFacsResult
System.out.println(isPerfect(sumFacsResult, n); //Take the result of sumFacs and pass it to the isPerfect method

或简写:

System.out.println(isPerfect(sumFacs(n), n));    //It is usually recommended to use the other approach, for readability purposed.

你的 isPerfect 方法应该是这样的:

public static boolean isPerfect(int sum, int number)
{
return sum == number;
}

关于java - 将整数从一种方法传递到另一种方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11789947/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com