C++中使用{0, 1, 2, 3, 4, 5}这些数字组成的第n个数
用数字{0, 1, 2, 3, 4, 5}组成的数字是
0, 1, 2, 3, 4, 5, 10, 11, 12, 13, 14, 15, 20, 21, 22, 23, 24, 25,等等…
我们可以使用前6个数字来形成上述序列。让我们来看一个数字形成的例子。
1 * 10 + 0 = 10 1 * 10 + 1 = 11 1 * 10 + 2 = 12 1 * 10 + 3 = 13 1 * 10 + 4 = 14 1 * 10 + 5 = 15
同样,对数字2、3、4、5也适用。使用上述模式,你将得到接下来的6个以2开头的数字。然后是3,之后是4和5。
算法
- 初始化数字n。
- 初始化一个向量。
- 编写一个从0迭代到5的循环。
- 将所有数字推入向量。
- 我们得到了这个序列的前六个数字。
- 编写一个从0迭代到n/6的循环。
- 编写一个从0迭代到5的循环。
- 使用上述讨论的模式生成剩余的数字。
- 将它们推入向量。
- 编写一个从0迭代到5的循环。
- 从序列中返回第n个数字。
实现
以下是上述算法在C++中的实现
#include <bits/stdc++.h>
using namespace std;
int findNthNumber(int n) {
vector<int> numbers;
for (int i = 0; i < 6; i++) {
numbers.push_back(i);
}
for (int i = 0; i <= n / 6; i++) {
for (int j = 0; j < 6; j++) {
if ((numbers[i] * 10) != 0) {
numbers.push_back(numbers[i] * 10 + numbers[j]);
}
}
}
return numbers[n - 1];
}
int main() {
int n = 7;
cout << findNthNumber(n) << endl;
return 0;
}输出
如果你运行上面的代码,你将得到以下结果。
10
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP