fibonacci.cpp

IdĽ do dokumentacji tego pliku.
00001 /*
00002   Name: DL programowanie zadanie 15 z rozdziału 16 książki Thinking in C++
00003   Author: Piotr Leżoń
00004   Date: 27-06-06 19:28
00005   Description: Przekształć funkcję fibonacci() w szablon funkcji o parametrze określającym
00006 typ zwracanej przez funkcję wartości (zamiast wartości typu int będzie ona
00007 mogła zwracać wartości typów long, float itp.).
00008 */
00009 //: C16:fibonacci.cpp {O}
00010 // From Thinking in C++, 2nd Edition
00011 // Available at http://www.BruceEckel.com
00012 // (c) Bruce Eckel 2000
00013 // Copyright notice in Copyright.txt
00014 
00015 
00016 #include "require.h"
00017 #include <iostream>
00018 
00019 using namespace std;
00020 
00021 template<class T>
00022 T fibonacci(int n) 
00023 {
00024   const int sz = 100;
00025   require(n < sz);
00026   static T f[sz]; // Initialized to zero
00027   f[0] = f[1] = 1;
00028   // Scan for unfilled array elements:
00029   int i;
00030   for(i = 0; i < sz; i++)
00031     if(f[i] == 0) break;
00032   while(i <= n) {
00033     f[i] = f[i-1] + f[i-2];
00034     i++;
00035   }
00036   return f[n];
00037   //mozna bylo takze zrobic to tak: return (T) f[n], zostalyby przeprowadzone standardowe konwersje typow i w resultacie funkcja zwrocilaby potrzebny nam typ T
00038 } 
00039 
00040 int main()
00041 {
00042     cout<<fibonacci<float>(10)<<endl;
00043     int a=fibonacci<int>(3);
00044     system("pause");
00045     return 0;
00046 }

Wygenerowano Tue Jun 27 19:34:49 2006 dla DL programowanie, zadania 5 z rozdzialu 16 ksiazki Thinking in C++ programem  doxygen 1.4.6-NO