在 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+ 次查看

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告