打印斐波那契数列
To print Fibonacci Sequence
整数值 N 作为输入传递。该程序必须打印斐波那契数列中的前 N 项。
import java.util.Scanner;
public class FibonacciExample {
public static void main(String[] args)
{
int maxNumber = 0;
int previousNumber = 0;
int nextNumber = 1;
System.out.println("How many numbers you want in Fibonacci:");
Scanner scanner = new Scanner(System.in);
maxNumber = scanner.nextInt();
System.out.print("Fibonacci Series of "+maxNumber+" numbers:");
for (int i = 1; i <= maxNumber; ++i)
{
System.out.print(previousNumber+" ");
/* On each iteration, we are assigning second number
* to the first number and assigning the sum of last two
* numbers to the second number
*/
int sum = previousNumber + nextNumber;
previousNumber = nextNumber;
nextNumber = sum;
}
}
}
这里的代码适用于 30 个以下的数字。但是在 30 之后它显示了我不需要的负值
例如如果我想要
5
显示完美解的斐波那契数列数
0 1 1 2 3
但如果我给
48
显示
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 5702887 9227465 14930352 24157817 39088169 63245986 102334155 165580141 267914296 433494437 701408733 1134903170 1836311903 **-1323752223**
但我需要这个答案
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 5702887 9227465 14930352 24157817 39088169 63245986 102334155 165580141 267914296 433494437 701408733 1134903170 1836311903 **2971215073**
查看最后一个数字
.我也试过 long
但没有结果
.那么我能做些什么来实现那个输出。 提前致谢
Integer.MAX_VALUE
是2147483647。
您期望的最大值是 2971215073,高于此值。
如果您需要获得更高的数字,请像这样使用 long
:
int maxNumber = 0;
long previousNumber = 0;
long nextNumber = 1;
//...
long sum = previousNumber + nextNumber;
//...
整数值 N 作为输入传递。该程序必须打印斐波那契数列中的前 N 项。
import java.util.Scanner;
public class FibonacciExample {
public static void main(String[] args)
{
int maxNumber = 0;
int previousNumber = 0;
int nextNumber = 1;
System.out.println("How many numbers you want in Fibonacci:");
Scanner scanner = new Scanner(System.in);
maxNumber = scanner.nextInt();
System.out.print("Fibonacci Series of "+maxNumber+" numbers:");
for (int i = 1; i <= maxNumber; ++i)
{
System.out.print(previousNumber+" ");
/* On each iteration, we are assigning second number
* to the first number and assigning the sum of last two
* numbers to the second number
*/
int sum = previousNumber + nextNumber;
previousNumber = nextNumber;
nextNumber = sum;
}
}
}
这里的代码适用于 30 个以下的数字。但是在 30 之后它显示了我不需要的负值 例如如果我想要
5
显示完美解的斐波那契数列数
0 1 1 2 3
但如果我给
48
显示
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 5702887 9227465 14930352 24157817 39088169 63245986 102334155 165580141 267914296 433494437 701408733 1134903170 1836311903 **-1323752223**
但我需要这个答案
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 5702887 9227465 14930352 24157817 39088169 63245986 102334155 165580141 267914296 433494437 701408733 1134903170 1836311903 **2971215073**
查看最后一个数字
.我也试过 long
但没有结果
.那么我能做些什么来实现那个输出。 提前致谢
Integer.MAX_VALUE
是2147483647。
您期望的最大值是 2971215073,高于此值。
如果您需要获得更高的数字,请像这样使用 long
:
int maxNumber = 0;
long previousNumber = 0;
long nextNumber = 1;
//...
long sum = previousNumber + nextNumber;
//...