使用 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 等)編寫此程式碼。希望您覺得本文有所幫助。
廣告