在C ++中仅允许使用2位(和7位)的序列中查找第n个元素
在这个问题中,我们得到一个整数N,表示一系列仅由4和7组成的数字。
该系列是4,7,44,47,74,77,…
任务是在只允许两位数字(和7位)的序列中找到第n个元素。
让我们举个例子来了解这个问题,
输入
N = 4,输出结果
47
解释
The series is: 4, 7, 44, 47, ….
解决方法
解决该问题的一个简单方法是创建直到第N个数的序列。很简单,如果当前数字的最后一位为7,则上一个和下一个数字的最后一位为4。
因此,我们将从第一个和第二个数字开始,然后进行到下一个元素。
为此,我们将创建一个数组系列[n + 1]。
For index series[1] put 4For index series[2] put 7
然后对于直到N的连续值,找到给定索引i的值,
If i is odd, series[i] = series[i/2]*10 + 4If i is even, series[i] = series[i/2]*10 + 7
在n次迭代后,返回series [n]处的值。
该程序说明了我们解决方案的工作原理,
示例
#include <iostream>输出结果using namespace std;
int findNthSeriesElement(int N) {
int series[N+1];
series[1] = 4;
series[2] = 7;
for (int i=3; i<=N; i++) {
if (i%2 != 0)
series[i] = series[i/2]*10 + 4;
else
series[i] = series[(i/2)-1]*10 + 7;
}
return series[N];
}
int main() {
int N = 9;
cout<<"The "<<N<<"th element of the array is "<<findNthSeriesElement(N);
return 0;
}
The 9th element of the array is 474
以上是 在C ++中仅允许使用2位(和7位)的序列中查找第n个元素 的全部内容, 来源链接: utcz.com/z/329476.html