```
// 帶記憶的遞歸:Fibonacci210802.cpp : 此文件包含 "main" 函數。程序執行將在此處開始并結束。//
#include <iostream>
#define Max1 1000001
int FaA[Max1];
//unsigned long long tmpn_1;
int tmpn_1;
int tmpn_2;
//unsigned long long tmpn_2;
//unsigned long long
int Fibonacci(int n)
{
if (0 == n) return 0;
if(2>n) return 1;// if (1 == n) return 1;
// if (2 == n) return 1;
// if (-1 != FaA[(n-1)]) { tmpn_1 = FaA[n - 1]; }
else if (-1==FaA[n-1]) tmpn_1 = Fibonacci((n-1));
// 后面的語句是等價代碼:
tmpn_1 = (-1 == FaA[n - 1]) ? Fibonacci(n - 1) : FaA[n - 1];
//此句為前面代碼的等價語句,
//只不過此為 “三目”寫法
tmpn_2 = (-1 == FaA[n - 2]) ? Fibonacci(n - 2) : FaA[n - 2];
// if (-1 != FaA[(n - 2) ]) { tmpn_2 = FaA[n - 2]; } else if (-1==FaA[n-2]) tmpn_2 = Fibonacci((n - 2) );
FaA[n] = tmpn_1 + tmpn_2;
return ( FaA[n] );
}//
int main()
{
int nn = 9;
for (int i = 0; i < Max1; ++i) { FaA[i] = -1; }
FaA[0] = 0; FaA[1] = 1;
//unsigned long long
int tmpull = Fibonacci(nn);
for(int ii=0;ii<=nn;++ii ) {//for220i
std::cout << "當N為:" << ii << "Fibonacci數為:";
std::cout << FaA[ii] << std::endl;
}//for220i
std::cout << "當N為:" << nn <<"Fibonacci數為:";
std::cout << tmpull << std::endl;
std::cout << "Hello World!\n";
}//main
```
(程序的)**代碼 都是寫給 人類看的……,只不過是剛好計算機可以執行而已。**So,寫代碼既是技術活兒,也是藝術創作……
前面程序的運行結果:
當N為:0Fibonacci數為:0
當N為:1Fibonacci數為:1
當N為:2Fibonacci數為:1
當N為:3Fibonacci數為:2
當N為:4Fibonacci數為:3
當N為:5Fibonacci數為:5
當N為:6Fibonacci數為:8
當N為:7Fibonacci數為:13
當N為:8Fibonacci數為:21
當N為:9Fibonacci數為:34
當N為:9Fibonacci數為:34

上圖的,紅份色部分的算法就可以稱為“對付法”、對付算法……
因為算法復雜度實在太高!