簡體   English   中英

從數組返回值

[英]returning value from arrays

我有程序Fibonacci,它可以計算並返回用戶給定的斐波那契數。 但是我不確定如何打印出由方法fibaux給出的返回值,例如輸出:fib 46是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;
        }

    }
}

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'public public static int fib(int n) '。 因此,無論一天結束時該方法內部將發生什么,該方法都將返回一個int值。 因此,只需為其分配一個新變量,然后按如下所示打印即可。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM