檢查一個具有偶數位數字的數是否為迴文數
迴文數是指數字反轉後仍然相同的數。在這個程式中,我們需要根據偶數位數字設定條件和操作,以識別給定的輸入是否滿足迴文數的條件。在C++中,我們有STL(標準模板庫)函式,例如to_string()、length()、rbegin()、rend()和push_back(),將用於檢查一個具有偶數位數字的數是否為迴文數。例如,2662、42124、44、888等都是滿足偶數位迴文數條件的數字。
使用for迴圈和if-else語句
該程式使用for迴圈根據偶數設定迭代和條件,並使用if-else語句檢查其是否為迴文數。
語法
以下語法在示例中使用:
to_string()
內建函式to_string()接受單個整型變數並將其轉換為字串。
length()
length()是C++的預定義函式,返回字串的長度。
演算法
以下步驟為:
步驟1:透過提及所有必要的標頭檔案(例如iostream和string)來啟動程式。
步驟2:然後使用名為isPalimdrome()的布林型別函式定義,該函式接受整型變數n作為引數來處理偶數迴文數。
步驟3:接下來,使用內建函式to_string()將整數轉換為字串型別並將其儲存在變數int_str中。然後計算名為int_str的變數的長度並將其儲存在變數len中。
步驟4:使用for迴圈,變數i遍歷字串的長度,並設定偶數迴文數的條件,即len/2,並遞增以檢查偶數值範圍。
步驟5:然後使用if語句檢查當前索引i處的字元是否等於字串末尾len - i - 1處的相應字元。如果所有字元對都不相等,則返回false;如果發現相等,則返回true。
步驟6:開始初始化整數n以設定值,並使用if-else語句接受名為isPalimdrome()的呼叫函式的引數,以檢查其是否滿足偶數迴文數的條件,並列印結果。
示例
在下面的示例中,我們將檢查偶數位數字是否為迴文數。
#include <iostream> #include <string> using namespace std; bool isPalindrome(int n) { // Using predefined function to_string() it converts the integer into string string int_str = to_string(n); // Using length() it finds the length of the string int len = int_str.length(); // Set the condition for even palindrome number for (int i = 0; i < len / 2; i++) { if (int_str[i] != int_str[len - i - 1]) { return false; } } return true; } int main() { // integer set to even number int num = 23132; if (isPalindrome(num)) { cout << "The given number is a satisfied palindrome. " << endl; } else { cout << "The given number is not satisfied for palindrome." << endl; } return 0; }
輸出
The given number is a satisfied palindrome.
使用vector庫
該程式使用vector庫提供一些相關的預定義函式,例如rbegin()、rend()和push_back(),以解決偶數位數字是否為迴文數的問題。
語法
以下語法在示例中使用:
rbegin()
rbegin()是C++ STL的預定義函式,它指向給定輸入字串的末尾字元。
rend()
rend()是C++ STL的預定義函式,它指向vector的反向末尾。換句話說,它指向第一個字元之前的 位置。
push_back()
push_back()是一個著名的預定義函式,它遵循vector庫。該函式用於從尾部/末尾刪除元素。
演算法
以下步驟為:
步驟1:我們將透過包含所有必要的標頭檔案來啟動程式。
步驟2:初始化兩個整型vector變數:
test(int n) - 從main函式中提到的變數num接收整數值。
result - 此變數用於計算問題陳述的結果。
步驟3:接下來,使用for迴圈,變數i遍歷輸入整數,並使用<運算子設定條件以根據給定的整型變數n查詢所有範圍。然後以‘+= 2’遞增,這將檢查偶數位置並查找回文數。
步驟4:現在將使用一些預定義函式,例如to_string() - 將整數轉換為字串,rbegin()和rend() - 檢查兩側的反轉,並使用if語句檢查其是否為迴文數。
步驟5:要啟動主函式,請初始化變數n以設定整數輸入並列印偶數迴文數。接下來,使用呼叫vector函式生成所有滿足迴文數條件的偶數。
步驟6:最後,我們使用for迴圈,其中變數i遍歷vector result,並列印0和給定整數n之間所有滿足條件的迴文數。
示例
在下面的示例中,我們將檢查輸入整數是否滿足偶數迴文數的條件。
#include <iostream> #include <string> #include <vector> using namespace std; vector<int> test(int n) { vector<int> result; // Apply the condition for even palindrome numbers between 50-100 // using += 2 checks for an even index positioning for (int i = 0; i < n; i += 2) { string str = to_string(i); string rvs(str.rbegin(), str.rend()); if (str == rvs) { result.push_back(i); } } return result; } //Start the main function int main() { int n = 2000; cout << "\nEven palindrome numbers between 0 to " << n << ":\n"; vector<int> result = test(n); for (int i : result) { cout << i << ' '; } return 0; }
輸出
Even palindrome numbers between 0 to 2000: 0 2 4 6 8 22 44 66 88 202 212 222 232 242 252 262 272 282 292 404 414 424 434 444 454 464 474 484 494 606 616 626 636 646 656 666 676 686 696 808 818 828 838 848 858 868 878 888 898
結論
我們討論了兩種方法來解決基於偶數位數字是否為迴文數的問題陳述。第一種方法簡單地使用for迴圈和if語句來設定偶數的條件,而第二種方法使用vector庫來提供一些STL函式。