將遞迴函式改為尾遞迴,或者是遞推函式,求第45,46,47,48個Fibonacci數所花費的時間,觀察效率是否得到提高。
遞推:
package 實驗二; public class Fi數列遞推 { public static void main(String args[]){ 遞推 f=new 遞推(); for(int i=45;i<=48;i++){ long start=System.currentTimeMillis(); System.out.println(f.F(i)); long end=System.currentTimeMillis(); long time=end-start; System.out.println("第"+i+"個Fibonacci數列的執行時間為:"+time); } } } class 遞推{ long F(int n){ if(n<=1) return 1; else{ long a0=1; long a1=1; long a2=0; for(int i=2;i<n;i++) { a2=a0+a1; a0=a1; a1=a2; } return a2; } } }
相關推薦
將遞迴函式改為尾遞迴,或者是遞推函式,求第45,46,47,48個Fibonacci數所花費的時間,觀察效率是否得到提高。
遞推: package 實驗二; public class Fi數列遞推 { public static void main(String args[]){ 遞推 f=new 遞推(); for(int i=45;i<=48;i++){ long st
將一個遞迴演算法改為對應的非遞迴演算法時,通常需要使用( )---騰訊2014研發筆試卷
將一個遞迴演算法改為對應的非遞迴演算法時,通常需要使用( )。 正確答案: D 你的答案: B (錯誤) 優先佇列 佇列 迴圈佇列 棧 新增筆記 收藏 糾錯
dedecms織夢預設的段落是用div標籤,將自動段落標籤改為p的函式
dedecms織夢預設的段落是用div標籤,將自動段落標籤改為p的函式。小編在開發好品牌網站的時候遇到這個問題。然後記錄下修改過程。 修改檔案 /dede/inc/inc_archives_functions.php (修改前先備份,免得出錯`) 查詢 function&nb
C語言實現有一個字元陣列的內容為:"student a am i",請你將陣列的內容改為"i am a student"。
//有一個字元陣列的內容為:"student a am i",請你將陣列的內容改為"i am a student"。 要求:不能使用庫函式。 只能開闢有限個空間(空間個數和字串的長度無關)。 解題思路:
C++定義一個複數類Complex,過載運算子“+”,使之能用於複數的加法運算。將運算子函式過載為非成員、非友元的普通函式。編寫程式,求兩個複數之和。
#include <iostream> #include <iomanip> using namespace std; class Complex { public: Complex(); Complex(double r,do
十進位制轉化成2,8,16進位制數工具。將程式碼全部複製到一個txt文件中儲存,並將檔案字尾.txt改為.html,再瀏覽器開啟即可
<!DOCTYPE html> <html lang="en"> <head> <meta charset="GBK"> <meta http-equiv="X-UA-Compatible" content="IE=ed
[南陽OJ-No.13]Fibonacci數|無窮數列1,1,2,3,5,8,13,21,34,55...稱為Fibonacci數列,它可以遞迴地定義為 F(n)=1 ...........(n=1或
南陽OJ-No.13 時間限制:3000ms,空間限制:65535KB 描述 無窮數列1,1,2,3,5,8,13,21,34,55…稱為Fibonacci數列,它可以遞迴地定義為 F(n)
Ubuntu將tomcat7 端口改為81
tomcatUbuntu將tomcat7 端口改為81: apt-get install authbind vi /etc/default/tomcat7 AUTHBIND=yes (默認為#AUTHBIND=no):wq vi /var/lib/tomcat7/conf/server.xml (默認為80
[轉]如何將Angular localhost:4200 改為IP
ali uci color tco .net its style vertica code 本文轉自:https://blog.csdn.net/ygznx/article/details/78249118 ust specify the IP in --host opt
有一個字元陣列的內容為:"student a am i", 將陣列的內容改為"i am a student"
有一個字元陣列的內容為:"student a am i", 將陣列的內容改為"i am a student" 要求: 不能使用庫函式 只能開闢有限個空間(空間個數和字串的長度無關) eg: student a am i i ma a tneduts i
將靜態順序表改為動態順序表
注:本篇只是大概實現動態順序表,靜態順序表詳敘請參照https://blog.csdn.net/R_T_P_A_D/article/details/84189236 實現動態順序表,只需在靜態順序表上做兩個變化就可以實現: 首先,需要將靜態順序表裡面的巨集定義取消掉,因為這是靜態順序表中最不
將window的location改為post提交
get提交 //window.location=href; /* 使用post方式提交 */ var form = $("<form>"
有一個字元陣列的內容為:"student a am i", 請你將陣列的內容改為"i am a stude
#include <stdio.h> #include <stdlib.h> #include <string.h> void reverse_string(char*start, char *end){ while (start < e
有一個字元陣列的內容為:"student a am i", 請你將陣列的內容改為"i am a student".
有一個字元陣列的內容為:"student a am i", 請你將陣列的內容改為"i am a student". 要求: 不能使用庫函式。 只能開闢有限個空間(空間個數和字串的長度無關)。
將Blender3d軟體語言改為中文設定(win各版本+Linux)
Blender作為開源軟體,為全世界的媒體工作者和藝術家而設計,可以被用來進行 3D 視覺化,同時也可以創作廣播和電影級品質的視訊,另外內建的實時 3D 遊戲引擎,讓製作獨立回放的 3D 互動內容成為可能。 有了 Blender 後,喜歡 3D 繪圖的玩家們不用花大錢,也可以製作出自己喜愛的 3D 模型了。
有一個字元陣列的內容為:"student a am i", 請你將陣列的內容改為"i am a student".
//有一個字元陣列的內容為:"student a am i", // 請你將陣列的內容改為"i am a student". #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> void
將例3.14改寫為在類模版外定義各成員函式(第三章第十二題)
#include <iostream> using namespace std; template<class numtype> class Compare {public: Compare(numtype a,numtype b); numtype
將字典中空值改為@""
- (NSDictionary *)deleteAllNullValue{ NSMutableDictionary *mutableDic = [[NSMutableDictionaryalloc
Grafana將資料庫由sqlite3改為mysql
Grafana資料預設是存放在sqlite3,可以通過修改配置檔案將資料庫改為mysql。 建立資料庫 CREATE DATABASE IF NOT EXISTS grafana DEFAULT CHARSET utf8 COLLATE utf8_ge
如何修改vs2008修改編譯選項,將/MD或/MDd 改為 /MT或/MTd
當需要解決exe不能在其他電腦執行時,有一種解決方案時修改編譯選項把MD或MDd改為MT或MTD,那麼VS2008這個編譯選項的位置 在哪裡。看下圖。進入工程屬性(這個應該知道在哪吧)另一種就是決絕exe不能在其他電腦執行的方法是,設定工程為靜態編譯(靜態庫)