国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

一個fibonacci數(shù)列簡單求和的問題

2019-11-15 01:03:22
字體:
來源:轉載
供稿:網友
一個fibonacci數(shù)列簡單求和的問題

前段時間老師在講函數(shù)調用的時候,用Fibonacci數(shù)列來演示了一下,因為以前沒怎么接觸過Fibonacci,所以當時很懵。

當時讓求的是Fibonacci數(shù)列中,第N位值為多少,當時老師寫的是:

之后呢,老師留的做作業(yè)是:求Fibonacci數(shù)列前N位的和,晚上自習的時候在想,求和的話必須需要用For循環(huán),懵懵懂懂的寫下了以下代碼:

public class Fibonacci{    public static void main(String[] args){        int i =5;  //聲明一個int類型的變量i 并賦值5        int b = 0;  //聲明一個int類型的變量b 代表和        for(int a = i; a >=1 ; --a){  // for循環(huán):a= i = 5            b += Fibonacci(a);  //調用Fibonacci方法 并賦值給b        }            System.out.PRintln( b );    }    public static int Fibonacci(int n){//斐波那契數(shù)列代碼,此處就不詳說了。        if (n == 1) {            return 0;        }        if (n == 2) {            return 1;        }else{            return Fibonacci(n-1) + Fibonacci(n-2);        }    }}

可得出結果,這個地方要感謝圖圖同學,他告訴我用迭代實現(xiàn)Fibonacci的和,我仔細看了一下,并用此方法得出結果:

public class Fei_Bo_Na_Qi{    public static void main(String[] args){        int m = 5;        System.out.println( "斐波那契數(shù)列的  第 "+m+"位數(shù)  為: "+m1(m) );//  在輸出的時候調用函數(shù)    }    public static int  m1(int i){   //創(chuàng)建方法          if (i == 1) {   //if如果... 如果等于1  就執(zhí)行下面java語句            return 0;    // 返回值 為0,返回給m1  并且結束一下java語句        }        if (i == 2) {    //if如果...  如果等于2  就執(zhí)行下面java語句            return 1;    //返回值  為1  并結束一下Java語句        } else {    //如果不==2  也不==1  就執(zhí)行一下java語句            int a = 0;   // 在這里代表斐波那契數(shù)列的第一個數(shù) 用int數(shù)據(jù)類型  聲明一個變量  變量名字為a  并賦值為0            int b = 1;   //  這里代表斐波那契的第二個數(shù)            int c = 0;   //這里代表斐波那契的第三個數(shù)               int e = 0;            for(int j=3; j <=i ; ++j){  //for循環(huán) 這里這個i-2 是什么意思呢?因為如果等于3的時候,是這里運算的第一個,就是等于3的時候,在這里等于1 額  可以這么說吧 因為等于1  和 2 的時候都在上面輸出,要是在這里不減去2的話,會循環(huán)三次  那就影響結果了                //recycle code block                c=a+b;   //  把a和b的和  賦值給c  因為除了前兩位  后面的每一位都是由前兩位的和組成的                e+=c;   //這是把前N列的數(shù)加起來                System.out.println( a+"+"+b+"斐波那契數(shù)列的  第 "+j+" 位  的值為"+"="+c );  //輸出 a+b=c                a=b;  //b代表數(shù)列的第二個,a代表數(shù)列的第一個,c代表數(shù)列的第三個  我吧b賦值給a  a就等于第二個了                 b=c;   //再把c賦值給b  b就等于數(shù)列的第三個了   那么下次循環(huán),c 就是數(shù)列的第四個了  一次類推                            }            System.out.println( "斐波那契數(shù)列的  前 "+ i +" 位數(shù)  的和為: "+(e+1) );  //這是輸出前N列的和            return c;   //等輸出完設置的數(shù)列  再把c 返回到m1   再返回到方法的調用出(也就是main方法的輸出哪里,因為在那里調用的,)方法不調用不執(zhí)行,調用才執(zhí)行,并把值返回到方法的調用出                    }    }}

或許有多于步驟和不合理的地方,但已經是現(xiàn)階段能做的最好的了,望大家多多指導,謝謝!


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 丹凤县| 新昌县| 长泰县| 万载县| 新晃| 白河县| 句容市| 封丘县| 定陶县| 玉门市| 洪江市| 霍城县| 宜君县| 通化市| 库伦旗| 南丰县| 阿尔山市| 房产| 玉门市| 邯郸市| 蓝田县| 安达市| 涿鹿县| 石泉县| 嘉兴市| 金秀| 墨竹工卡县| 抚州市| 达日县| 桦甸市| 房产| 淅川县| 永登县| 昌图县| 百色市| 黄陵县| 辽源市| 石台县| 锡林郭勒盟| 行唐县| 康乐县|