Java 从数组返回值

Java 从数组返回值,java,arrays,return,Java,Arrays,Return,我有一个程序Fibonacci,它计算并返回用户给出的Fibonacci数。然而,我不知道如何打印出方法fibax给出的返回值,例如输出:fib46是1836311903 import java.util.InputMismatchException; import java.util.Scanner; public class Fibonacci { // main public static void main(String[] args) { try {

我有一个程序Fibonacci,它计算并返回用户给出的Fibonacci数。然而,我不知道如何打印出方法fibax给出的返回值,例如输出:fib46是1836311903

import java.util.InputMismatchException;
import java.util.Scanner;

public class Fibonacci {

    // main
    public static void main(String[] args) {
        try {
            System.out.print("Enter number you would like to calculate ");
            Scanner input = new Scanner(System.in);
            int inputNumber = input.nextInt();
            if (handleArguments(inputNumber)){
                fib(inputNumber);

            }


        } catch (InputMismatchException exception) {
            System.out.println("Input not an integer");
        }


    }

    // Handle special case when n == 0
    public static int fib(int n){
        if(n == 0){
            return 0;

        }else{
            int fibauxArray[] = fibaux(n);
            return fibauxArray[0];
        }

    }

    // Auxiliary function
    // Return the nth and (n-1)th Fibonacci numbers
    // n must be an integer >= 1
    public static int[] fibaux(int n){
        // base case for recursion
        if(n == 1) {
            return new int[] {1, 0};
            // recursive case
        }else{
            int [] fibauxRecursive = fibaux(n - 1);
            int f1 = fibauxRecursive[1];
            int f2 = fibauxRecursive[0];

            return new int[] {f1 + f2, f1};
        }
    }

    static boolean handleArguments(int input) {
        if (input >= 0 && input <= 46){
            return true;
        }else{
            System.out.println("Error: number must be between 0 to 46");
            return false;
        }

    }
}
import java.util.InputMismatchException;
导入java.util.Scanner;
公共类斐波那契{
//主要
公共静态void main(字符串[]args){
试一试{
System.out.print(“输入您想要计算的数字”);
扫描仪输入=新扫描仪(System.in);
int inputNumber=input.nextInt();
if(手动学习内容(输入编号)){
fib(输入编号);
}
}捕获(输入不匹配异常){
System.out.println(“输入不是整数”);
}
}
//处理n==0时的特殊情况
公共静态整数fib(整数n){
如果(n==0){
返回0;
}否则{
int fibauxArray[]=fibaux(n);
返回fibauxArray[0];
}
}
//辅助功能
//返回第n个和第(n-1)个斐波那契数
//n必须是大于等于1的整数
公共静态int[]fibax(int n){
//递归的基本情况
如果(n==1){
返回新的int[]{1,0};
//递归案例
}否则{
int[]fibauxRecursive=fibaux(n-1);
int f1=fibauxRecursive[1];
int f2=fibauxRecursive[0];
返回新的int[]{f1+f2,f1};
}
}
静态布尔handleArguments(int输入){
如果(输入>=0&&input
inta=fib(输入编号);
以这种方式调用函数。函数返回的任何值都将存储在变量
a

要打印值,请执行以下操作:

System.out.println(a);

请看将要进行的更改:

public static void main(String[] args) {
        try {
            System.out.print("Enter number you would like to calculate ");
            Scanner input = new Scanner(System.in);
            int inputNumber = input.nextInt();
            if (handleArguments(inputNumber)){
                int a=fib(inputNumber); //value returned will be stored in a
                System.out.println(a); //printing a

            }


        } catch (InputMismatchException exception) {
            System.out.println("Input not an integer");
        }
     }
或 只需提及
System.out.println(fib(inputnumber));
而不是
fib(inputnumber);
int a=fib(inputnumber);
以这种方式调用函数。函数返回的任何值都将存储在变量
a

要打印值,请执行以下操作:

System.out.println(a);

请看将要进行的更改:

public static void main(String[] args) {
        try {
            System.out.print("Enter number you would like to calculate ");
            Scanner input = new Scanner(System.in);
            int inputNumber = input.nextInt();
            if (handleArguments(inputNumber)){
                int a=fib(inputNumber); //value returned will be stored in a
                System.out.println(a); //printing a

            }


        } catch (InputMismatchException exception) {
            System.out.println("Input not an integer");
        }
     }

只需提及
System.out.println(fib(inputnumber));
而不是
fib(inputnumber);

看看方法返回类型。我只是说它将返回一个int'
公共静态int fib(int n)
”。因此,无论在一天结束时方法内部发生什么,该方法都将返回一个int。因此,只需为其分配一个新变量,并按如下方式打印出来即可

int returnVal =fib(inputNumber);
System.out.println(returnVal);

看看方法返回类型。我只是说它将返回一个int“
公共静态int fib(int n)
”。因此,无论在一天结束时方法内部发生什么,该方法都将返回一个int。因此,只需为其分配一个新变量并按如下方式打印出来

int returnVal =fib(inputNumber);
System.out.println(returnVal);

你有什么问题吗?@Abdelhak我如何将方法中返回的值返回main以返回正确的整数?@ShahobMousavi你介意告诉我你使用这个
int fibauxArray[]=fibaux(n)试图实现什么吗;
?你有什么问题吗?@Abdelhak我如何将方法中返回的值返回main以返回正确的整数?@ShahobMousavi你介意告诉我你使用这个
int fibauxArray[]=fibaux(n);
?或者直接打印它
System.out.println(fib(inputNumber))
@ScaryWombat他想在main中打印:)这是在
main
中,只是不需要创建一个变量来存储它。是的。那也行。他似乎在练习方法调用和其他东西。
练习方法调用和其他东西
-这是技术术语吗?还是直接打印它(inputNumber));
@ScaryWombat他想在main中打印:)这是在
main
中,只是不需要创建一个变量来存储它。是的。那也行。他似乎在练习方法调用之类的东西。
练习方法调用之类的东西
-这是技术术语吗?