Python 检查具有偶数位数的数字是否是回文数

Python 检查具有偶数位数的数字是否是回文数

回文数指的是当数字反转时得到相同的数。在这个程序中,我们需要根据偶数位数设置条件和操作,以确定给定的输入是否满足回文数的条件。在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()的函数定义,其返回类型为bool类型,并接受整数变量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的预定义函数,它指向向量的反向结尾。换句话说,它指向第一个字符之前的位置。

push_back()

push_back()是一个著名的预定义函数,它遵循vector库。该函数用于从末尾删除元素。

步骤

以下步骤:

步骤1:我们将从包含所有必要的头文件开始程序。

步骤2:初始化两个整数类型的向量变量-

  • test(int n)-从主函数中提到的num变量中接收整数值。

  • result-用于解决问题陈述的结果计算的变量。

步骤3:接下来,使用for循环,变量i迭代输入整数并使用<操作符设置条件,以根据给定的整数变量n找到所有范围。然后使用‘+= 2’进行递增,这将检查偶数位置并找到回文数。

步骤4:现在将使用一些预定义的函数,如to_string()-将整数转换为字符串,rbegin()和rend()-在两侧检查翻转,并通过if语句检查其是否为回文数。

步骤5:为了启动主函数,将变量n初始化为设置的整数输入,并打印偶数回文数。然后使用调用向量函数生成满足回文数的所有偶数。

步骤6:最后,我们使用for循环,其中变量i迭代向量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语句来设置偶数的条件,而第二种方法使用向量库来提供一些STL函数。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程