Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tìm số hạng thứ n của dãy cho trước 0, 0, 2, 1, 4, 2, 6, 3, 8, 4... trong C++


Trong bài toán này, chúng ta được cho một giá trị nguyên N. Nhiệm vụ của chúng ta là Tìm số hạng thứ n của dãy cho trước −

0, 0, 2, 1, 4, 2, 6, 3, 8, 4, 10, 5, 12, 6, 14, 7, 16, 8, 18, 9, 20, 10… 

Hãy xem ví dụ sau để hiểu bài toán:

Input − N = 6 Output − 2

Phương pháp giải

Để tìm số hạng thứ N của dãy, ta cần quan sát kỹ dãy. Nó là sự kết hợp của hai dãy tại vị trí lẻ và chẵn. Hãy xem từng dãy:

Ở vị trí chẵn −

  • T(2) = 0
  • T(4) = 1
  • T(6) = 2
  • T(8) = 3
  • T(10) = 4

Giá trị tại T(n) nếu n chẵn là {(n/2) - 1}

Ở vị trí lẻ −

  • T(1) = 0
  • T(3) = 2
  • T(5) = 4
  • T(7) = 6
  • T(9) = 4

Giá trị tại T(n) nếu n lẻ là {n - 1}

Ví dụ

Chương trình minh họa cho giải pháp

#include <iostream> using namespace std; bool isEven(int n){    if(n % 2 == 0)       return true;    return false; } int findNthTerm(int n){ if (isEven(n))       return ((n/ 2) - 1);    else       return (n - 1); } int main(){    int N = 45;    cout<<N<<"th term of the series is "<<findNthTerm(N);    return 0; }

Kết quả

45th term of the series is 44