Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm số thứ n trong một hệ thống số chỉ có 3 và 4 trong C ++

Trong bài toán này, chúng ta được cho một phần tử N. chúng ta cần tìm số thứ N trong một hệ thống số chỉ có 3 và 4.

Hệ thống số bao gồm các phần tử 3, 4, 33, 34, 43, 44, 333, 334, 343, 344,…

Hãy lấy một ví dụ để hiểu vấn đề,

Đầu vào

N = 6

Đầu ra

44

Giải thích

Các số của hệ thống số là - 3, 4, 33, 34, 43, 44 ...

Phương pháp tiếp cận giải pháp

Hệ thống số tương tự như hệ thống số nhị phân nhưng số 0 được thay thế bằng 3 và số 1 được thay thế bằng 4.

Giả sử điều này là sBinary.

Vì vậy, số thứ N là chuyển đổi nhị phân của (n-1).

Với kiến ​​thức này, chúng ta có thể dễ dàng giải bài toán bằng cách tìm số tương đương nhị phân của (N-1) và sau đó cộng từng chữ số của số nhị phân tìm được với 3.

Làm thế nào để chuyển đổi thập phân sang nhị phân?

Chương trình minh họa hoạt động của giải pháp của chúng tôi,

Ví dụ

#include<iostream>
using namespace std;
void findNThTermNumberSystem(int N) {
   if(N == 1 || N == 2) {
      cout<<(N-1) + 3;
      return;
   }
   N -= 1;
   findNThTermNumberSystem(N/2);
   cout<<((N % 2) + 3);
}
int main(){
   int N = 12;
   cout<<N<<"th term of the number system is ";
   findNThTermNumberSystem(N);
   return 0;
}

Đầu ra

12th term of the number system is 434