2017-03-29 8 views

答えて

0

楽しく、私の最初の試みです。誰でも改善できますか?

#include <iostream> 
#include <iomanip> 

int f_recursive(int n) 
{ 
    if (n <= 2) { 
     return 1; 
    } 
    else { 
     return (n * f_recursive(n - 1) - f_recursive(n - 2)); 
    } 
} 

int f_iterative(int n) 
{ 
    int result = 1, result_1 = 1; 

    for (int i = 3 ; i <= n ; ++i) { 
     int result_2 = result_1; 
     result_1 = result; 
     result = i * result_1 - result_2; 
    } 
    return result; 
} 

int main() 
{ 
    for(int i = 0 ; i < 14 ; ++i) { 
     std::cout << std::setw(10) << f_recursive(i) << " " << f_iterative(i) << std::endl; 
    } 
} 

サンプル出力:

  1 1 
     1 1 
     1 1 
     2 2 
     7 7 
     33 33 
     191 191 
     1304 1304 
    10241 10241 
    90865 90865 
    898409 898409 
    9791634 9791634 
116601199 116601199 
1506023953 1506023953 
関連する問題