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 3, 5, 33, 35, 53... trong C++

Cho dãy: 3, 5, 33, 35, 53, 55... (chỉ chứa 3 và 5). Tìm số hạng thứ N.

Đệ quy / Quy hoạch động

Tương tự dãy 1,2,11,12...: T(1)=3, T(2)=5. N lẻ: T(N)=T(N/2)*10+3; N chẵn: T(N)=T(N/2-1)*10+5.

Mã nguồn C++

#include <bits/stdc++.h>
using namespace std;

int printNthElement(int n) {
    vector arr(n+1);
    arr[1]=3; arr[2]=5;
    for (int i=3; i<=n; i++) {
        if (i%2) arr[i] = arr[i/2]*10 + 3;
        else arr[i] = arr[i/2 - 1]*10 + 5;
    }
    return arr[n];
}

int main() {
    int n = 6;
    cout << printNthElement(n); // 55
    return 0;
}

Đầu ra

55