在 C++ 中查詢僅包含 3 和 4 的數字系統中的第 n 個數字


在這個問題中,我們給定一個元素 N。我們需要在僅包含 3 和 4 的數字系統中找到第 N 個數字。

該數字系統由元素 3、4、33、34、43、44、333、334、343、344……組成。

讓我們舉個例子來理解這個問題,

輸入

N = 6

輸出

44

解釋

數字系統的數字為 - 3、4、33、34、43、44...

解決方案方法

該數字系統類似於二進位制數字系統,但數字 0 被替換為 3,數字 1 被替換為 4。

讓我們將其稱為 sBinary。

因此,第 N 個數字是 (n-1) 的 Sbinary 轉換。

有了這些知識,我們可以透過找到 (N-1) 的二進位制等價物,然後將找到的二進位制數的每個數字加 3 來輕鬆解決問題。

如何將十進位制轉換為二進位制?

程式說明我們的解決方案的工作原理,

示例

 線上演示

#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;
}

輸出

12th term of the number system is 434

更新於: 2021-03-13

1K+ 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.