在 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
广告