角谷定理python每次输出数_角谷定理C++递归问题,求问步数为什么总输出0?
匿名用戶
1級
2014-06-13 回答
源代碼如下:
/ /斐波那契序列比較算法項目N個程序,用VC + +6.0編譯通過
#包括
>長FIB1(INT N);
長fib2(INT N);
INT I = 0; / /操作數
/ / ---------------開始的main()------------
>無效的主要()
{
詮釋n = 0;
法院<
CIN >> N; / /輸入參數為n
法院<< ENDL << ENDL; / /顯示兩個空行
/ /測試案例/> I = 0;經營計數器/ /數清零
法院<
COUT <
法院<< ENDL;
/ /結果表明很差運營效率,遞歸調用的次數居然達到了兩倍-1次操作數值結果。
/ /在N = 20的競爭達到呼叫13529倍的數量的情況下。靈感
/ /但得到的是你是否可以使用這條規則推導公式。
/ /這是一個使用案例/ 2
/ /測試循環算法的結果=(遞歸調用1號)------------- -----
我= 0;經營計數器/ /數清零
法院<
COUT <
法院<< ENDL;
/ /結果顯示:高運營效率,經營甚至在有條件的增幅只有n次
/ /在N = 20的情況下,前面的總數只需要循環18次,甚至兩次判決可以被認為是計算20次。
} / / ----------------結束的main()--------------
BR /> / / ---------------開始fib2()------------
長FIB1(詮釋n)/ /使用遞歸調用
i + +; / /的操作計數器數,不包括在算法復雜度統計。
開關(N)/ /
{/ /
情況下0:返回0; / / -----每次通話不能跳過的判斷操作(復雜性未知)。
案例1:/ /
案例2:返回1; / /
} / /
回報FIB1(N-1)+ FIB1(N-2); / /主計算表,每個呼叫相當于兩倍的加法運算并返回(至少等于分配),同時也為遞歸調用(復雜性是未知的)。
} / / --------------結束FIB1()--------------
/ / - --------------開始fib2()------------
長fib2(詮釋n)/ /使用循環
{ BR />整數K = 0;
長為a = 1,B = 1,C = 0;
如果(N == 0)/ /根據n的值可以算作一個,以確定操作包括三名算法的復雜性。
{/ /
返回0; / /
} / /
否則,如果(N = 1 | | N = 2)/ / - |
{/ / |
返回1; / / | ---考慮到這個初始循環條件判斷的多功能性可以移動,但效率不會是最優的,
} / / - |時鐘周期在每個周期的經驗增加了1-2倍的判斷操作,增加了算法的復雜性。
{
為(k = 2時,K
{
B = A +(C = B) ; / /
A = C; / /(寫為c = b的,B = A + B; A = C ;)語句實際操作中,只有一個加法器和3分配。
i + +; / /計算計數器的數量,該算法的復雜性,不包含在統計信息。
返回b;
/ / --------------結束fib2()--------------
/ *上面fib2()的代碼,以簡化的形式如下:
長fib2(詮釋n){
整數K = 0;
長為a = 1,B = 1,C = 0;
如果(N == 0)
返回0;
如果(N = 1 | | N = 2)
返回1;
為(k = 2時,K
B = A +(C = B); A = C;
}
retrun b;
------------------ * /
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的角谷定理python每次输出数_角谷定理C++递归问题,求问步数为什么总输出0?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 堆栈转化8进制_11张卡片学会进制转换
- 下一篇: python循环捕捉异常_python异