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