使用 C++ 查詢數字各位數字之和為偶數的數字


一個可以被 2 整除的整數稱為偶數。因此,在本文中,我們給定數字 n,我們需要找到第 n 個各位數字之和為偶數的數字。前五個各位數字之和為偶數的數字是 2、4、6、8 和 11。例如 -

Input : n = 5
Output : 11
Explanation : First 5 numbers with even sum of digits are 2, 4, 6, 8, 11 i.e 5th
number is 11.

Input : 12
Output : 24

尋找解決方案的方法

現在您將瞭解兩種不同的程式來找到給定問題的解決方案。

樸素方法

找到第 n 個數字的一個簡單解決方案是從 1 開始遍歷數字,並檢查每個數字的數字之和是否為偶數;如果是,則將計數器加 1,直到計數器的值等於 n,最後那個第 n 個數字將是答案。

高效方法

找到第 n 個數字的一種有效方法是首先檢查各位數字之和為偶數的起始數字,並尋找模式以找到答案。前 20 個各位數字之和為偶數的數字是 2、4、6、8、11、13、15、17、19、20、22、24、26、28、31、33、35、37、39 和 40。檢視這前 20 個數字,我們發現如果 n 的最後一位數字在 0 到 4 之間,則第 n 個數字將是 2*n,如果第 n 個數字在 5 到 9 之間,則第 n 個數字將是 (2*n + 1)。

示例

#include <bits/stdc++.h>
using namespace std;
int main () {
   long long int n = 13;
   long long int result;
   // finding the last digit of n
   int last_digit = n % 10;
   // checking if last digit is between 0 and 4
   if (last_digit >= 0 && last_digit <= 4)
      result = 2 * n;
      // checking if last digit is between 5 and 9
   else
      result = (2 * n) + 1;
   cout << "nth Number with even sum of digits: " << result;
   return 0;
}

輸出

nth Number with even sum of digits: 26

上述程式碼的解釋

  • 找到最後一位數字,並檢查它是否在 0 到 4 之間;如果是,則將 2*n 作為答案儲存在 result 變數中。
  • 否則,檢查最後一位數字是否在 5 到 9 之間;如果是,則將 2*n + 1 作為答案儲存在 result 變數中。
  • 列印儲存在 result 變數中的各位數字之和為偶數的第 n 個數字。

結論

在本文中,我們討論了查詢各位數字之和為偶數的第 n 個數字,我們可以透過本文中瞭解到的兩種方式解決此問題。我們還編寫了 C++ 程式碼來製作程式以解決相同的問題。我們可以用其他語言(如 C、Java、Python 等)編寫此程式碼。希望您覺得本文有所幫助。

更新於:2021-11-26

327 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告