2018年4月1日 星期日

[C_RU25-易] 遞迴練習f(n)=3f(n-1)+g(n-1)﹐g(n)=-f(n-1)+g(n-1)(C++)

[C_RU25-易] 遞迴練習f(n)=3f(n-1)+g(n-1)﹐g(n)=-f(n-1)+g(n-1)


Time Limit: 1 seconds
問題描述 :
由式子 f(n)=3f(n-1)+g(n-1),g(n)=-f(n-1)+g(n-1) 且 f(1)=2 , g(1)=-6 ,輸入 值,求 f(n) 及 g(n)
輸入說明 :
輸入正整數 。其中 2 ≤ n ≤ 23.
輸出說明 :
依序輸出 f(n)、g(n) 的值,數值之間,隔一個空白。
範例 :

輸入範例輸出範例
20 -8
3-8 -8

*******我沒用遞迴********
  1. #include <iostream>  
  2. #include <iomanip>  
  3. #include <vector>  
  4. using namespace std;  
  5.   
  6. int main() {  
  7.     // [C_RU25-易] 遞迴練習  
  8.     // f(n)=3f(n-1)+g(n-1)  
  9.     // g(n)=-f(n-1)+g(n-1)  
  10.     double N;  
  11.     cin >> N;  
  12.     vector<int> f;  
  13.      vector<int> g;  
  14.      for (double i=0; i< N; i++)  
  15.      {  
  16.         if(i == 0)  
  17.         {  
  18.             f.push_back(2);  
  19.             g.push_back(-6);  
  20.         }  
  21.         else  
  22.         {  
  23.             f.push_back(3*f[i-1] + g[i-1]);  
  24.             g.push_back(-1*f[i-1] + g[i-1]);  
  25.         }  
  26.      }  
  27.      cout << f[N-1] << " " << g[N-1] << endl;  
  28.     return 0;  
  29. }  

沒有留言:

張貼留言