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的迴圈。
      • 使用上述討論的模式生成剩餘的數字。
      • 將它們推入向量。
  • 從序列中返回第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

更新於:2021年10月22日

279 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.