[英]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.