当前位置:首页 » 编程语言 » java斐波那契

java斐波那契

发布时间: 2022-06-13 03:59:42

java:求斐波那契数列第n项

public class Fibonacci {
public static void main(String args[]){
int n,fn;//n为第n项,fn为第n项的值
java.util.Scanner s = new Scanner(System.in);
n=s.nextInt();
fn=function(n);
System.out.println("斐波那契数列第"+n+"项为:"+fn);
}

public static int function(int n){
if(n==1 || n==2) return 1;
return function(n-1)+function(n-2);
}

}
希望能帮到你,其实和c语言是一样一样的。。
希望能解决您的问题。

㈡ java 斐波那契数列

importjava.util.Scanner;
/**
*斐波那契数列:第0项是0,第1项是第一个1。
这个数列从第三项开始,每一项都等于前两项之和
*@authoryoung
*
*/
publicclassFei{
publicstaticvoidfunc(intn){
if(n<3){
System.out.println("0,1");
}elseif(n>3){
inta=0,b=1,c=0;
System.out.print(a+""+b+"");
for(inti=3;i<=n;i++){
c=a+b;
a=b;
b=c;
System.out.print(c+"");
}
}elseif(n<0){
System.out.println("输入数字不符合要求");
}
}
publicstaticvoidmain(String[]args){
Feif=newFei();
Scannerinput=newScanner(System.in);
System.out.print("请输入斐波那契数列的列数n,按ENTER:");
intnum=input.nextInt();
System.out.println("斐波那契数列为:");
func(num);
}
}

正确的代码

㈢ java判断一个数是否斐波那契

斐波纳契数列,又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)。

以下是Java代码实现(递归与递推两种方式):


importjava.util.Scanner;

publicclassFibonacci{

publicstaticvoidmain(String[]args){
Scannerscanner=newScanner(System.in);
System.out.println("Pleaseinputthisfibonaccin:");
intn=scanner.nextInt();//假设输入为大于零的整数

System.out.println(fibonacci(6)+":"+fibonacciNormal(6));

intsum=0;
for(inti=1;i<=n;i++){
sum+=fibonacci(i);
}
System.out.println(sum);
}

//递归实现方式
publicstaticintfibonacci(intn){
if(n<=2){
return1;
}else{
returnfibonacci(n-1)+fibonacci(n-2);
}
}

//递推实现方式
(intn){
if(n<=2){
return1;
}
intn1=1,n2=1,sn=0;
for(inti=0;i<n-2;i++){
sn=n1+n2;
n1=n2;
n2=sn;
}
returnsn;
}
}

㈣ Java实现斐波那契数列

public class Demo{
public static void main(String[] args) {
int fei[] = new int[25];
fei[0] = 0;
fei[1] = 1;
for(int i=2;i<fei.length;i++){
fei[i] = fei[i-1] + fei[i-2];
}
for(int i=0;i<fei.length;i++){
System.out.print(fei[i]+" ");
}
}
}

㈤ 用JAVA表示斐波那契数列 急急急!!!!

publicclassFibonacci{

//能够被显示的最大项
privatestaticfinallongMAX_TERM_VALUE=10000;

publicvoidrun(){
longfibonacci_1=0L;
longfibonacci=1L;
System.out.println(fibonacci_1);
while(fibonacci<MAX_TERM_VALUE){
System.out.println(fibonacci);
longtemp=fibonacci_1+fibonacci;
fibonacci_1=fibonacci;
fibonacci=temp;
}
}

publicstaticvoidmain(String[]args){
newFibonacci().run();
}

}

㈥ java语言解决斐波那契数列问题

public
class
zuoye{
public
static
void
main(String[]
args){
int
num1=1,num2=1;//设定前两位数初始值
int
num=0;
//把变量mun赋值为0是什么意思?在后面有什么用?
答:
num赋值初始化为0,
不然为null.
System.out.println(num1+"\\t"+num2+"\\t"+(num1+num2));
//显示输出数列的前三位
这个上面的打印的结果和后面循环的结果应该是分开的,也就是前面打印
1
1
2
然后换行,然后再通过循环打印10个数字.
接下来我们看循环部分.
斐波那契数列公式是
F1=1
(n=1)
F2=1
(n=2)
Fn=F(n-1)+F(n-2)
(n>=3)
所以,
for(int
i=1;i<=10;i++){
//for循环
int
num3=num+num2;
//num+num2
??num加num2干什么?
答:num是个中间变量,
用来传值,
赋给num的值永远是F(n-1)
num2=num;
//为什么又把num赋值给num2?
答:
赋给num2的值永远是F(n-2).
这里因为num的值在上一个循环里为F(n-1),到下一个循环应该是F(n-2).所以赋给num2.
num=num3;
//
num3再赋给num?
答:
因为赋给num的值永远是F(n-1),
这里因为num3的值到下一个循环应该就是F(n-1).所以赋给num.
System.out.print("\\t"+num3);
if(i%5==0){
//i能被5整除.为什么要设定一个这样的判断条件?
答:
这里是每五个数打印一个换行符.
System.out.println();
//输出空的是什么意思?
答:
这里是打印一个换行符
}
}
}
}

㈦ java斐波那契数排列

你好,使用递归方法,计算n的斐波纳契数列,以下为实现代码。
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
int n = 0;
try{
// 接收控制台传递参数,并将转化为整数
n = Integer.parseInt(args[0]);
}catch(Exception ex)
{
ex.printStackTrace();
System.out.println("请输入整数!");
}
// 创建对象
Test test = new Test();
// 调用递归方法,计算n的斐波那契数
int value = test.f(n);
// 输出结果
System.out.println(value);
}

/**
* 自定义递归方法,返回f(n)=f(n-1) + f(n-2)
* @param n
* @return
*/
private int f(int n)
{
// 当n不等于1时
if(n >= 2)
{
// 递归调用
return f(n-1) + f(n-2);
}
// 当n等于1时
else if(n == 1)
{
return 1;
}
// 当n等于0时
else if(n == 0)
{
return 0;
}
// 其他情况返回0
return 0;
}
}

㈧ java实现斐波那契数列的几种方法时间效率问

这道兔子题的实质就是斐波那契数列: 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1 1 2 3 5 8 13 ……

方案一:递归算法实现

public static long fib(int n){

if(n <= 1){

return 1;

}else{

return fib(n - 1) + fib(n - 2);

}

}

初看起来,使用递归算法是最简洁的。可是,如果将程序编码病在n值为40左右时运行那么这个程序让人感到效率低的吓人。n>4时,其时间效率为fib(N)>=(3/2)的n次方,这个程序运行的时间以指数的速度增长。这大概是最坏的情况。

方案二:数组方式

public static int fib2(int n) {

int[] array = new int[n];

array[0] = array[1] =1;

for (int i = 0; i < array.length; i++) {

if (i == 0 || i == 1) {

return array[i];

}else {

array[i] = array[i-1] +array[i-2];

}

} return array[i];

}

数组方式的好处是只是用了一个for循环,运行时间可以显着降低。

㈨ 如何用java语言输出斐波那契数列

  • Java编程:三种方法实现斐波那契数列


其一方法:

publicclassDemo2{
//定义三个变量方法
publicstaticvoidmain(String[]args){
inta=1,b=1,c=0;
System.out.println("斐波那契数列前20项为:");
System.out.print(a+" "+b+" ");
//因为前面还有两个1、1所以i<=18
for(inti=1;i<=18;i++){
c=a+b;
a=b;
b=c;
System.out.print(c+" ");
if((i+2)%5==0)
System.out.println();
}
}

}
  • java编程:三种方法实现斐波那契数列


其二方法:

publicclassDemo3{
//定义数组方法
publicstaticvoidmain(String[]args){
intarr[]=newint[20];
arr[0]=arr[1]=1;
for(inti=2;i<arr.length;i++){
arr[i]=arr[i-1]+arr[i-2];
}
System.out.println("斐波那契数列的前20项如下所示:");
for(inti=0;i<arr.length;i++){
if(i%5==0)
System.out.println();
System.out.print(arr[i]+" ");
}
}

}
  • Java编程:三种方法实现斐波那契数列

其三方法:

publicclassDemo4{
//使用递归方法
privatestaticintgetFibo(inti){
if(i==1||i==2)
return1;
else
returngetFibo(i-1)+getFibo(i-2);
}

publicstaticvoidmain(String[]args){
System.out.println("斐波那契数列的前20项为:");
for(intj=1;j<=20;j++){
System.out.print(getFibo(j)+" ");
if(j%5==0)
System.out.println();
}
}

}

同一道题用各种不同的思路去思考解决,也是对知识综合运用的锻炼。

㈩ Java斐波那契数第35个数,流程图加代码

流程图如下:

public int Fibonacci(int n) {

int[] res = {0, 1};

if(n < 2) {

return res[n];

}

int first = 0;

int second = 1;

int fibn = 0;

for(int i = 2; i <= n; i++) {

fibn = first + second;

first = second;

second = fibn;

}

return fibn;

}

public static void main(String[] args) {
System.out.println(Fibonacci(35));
}

热点内容
c语言发短信 发布:2024-05-18 13:23:08 浏览:833
vb数据库程序 发布:2024-05-18 13:01:57 浏览:111
新建文件夹2免费手机 发布:2024-05-18 12:56:13 浏览:365
自己在家搭建服务器有水冷散热吗 发布:2024-05-18 12:47:27 浏览:649
旧版的安卓手机怎么使用微信 发布:2024-05-18 12:46:36 浏览:467
我的世界服务器开多久 发布:2024-05-18 12:45:32 浏览:593
vba获取网页表格数据库数据库数据库 发布:2024-05-18 12:23:24 浏览:700
腾讯服务器为什么卡顿 发布:2024-05-18 12:02:12 浏览:306
如何知道密码锁有没有nfc 发布:2024-05-18 11:58:09 浏览:962
单片机c语言模块化编程 发布:2024-05-18 11:53:16 浏览:645