检查偶数位的数字是否为回文

pythonserver side programmingprogramming更新于 2023/12/29 4:24:00

回文是指数字颠倒后的数字相同。在这个程序中,我们需要根据偶数位设置条件和操作,以确定给定的输入是否满足回文。在 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) {
    // 使用预定义函数 to_string() 将整数转换为字符串
    string int_str = to_string(n);
    // 使用 length() 查找字符串的长度
    int len = int_str.length();
    // 设置偶数回文数的条件
    for (int i = 0; i < len / 2; i++) {
        if (int_str[i] != int_str[len - i - 1]) {
            return false;
        }
    }
    return true;
}
int main() {
// 整数设置为偶数
    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.

使用向量库

该程序使用向量库提供一些相关的预定义函数,如 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 遍历向量结果并打印 0 和给定整数 n 之间所有满足回文数。

示例

在下面的例子中,我们将检查输入的整数是否满足偶数回文。

#include <iostream>
#include <string>
#include <vector>
using namespace std;
vector<int> test(int n) {
vector<int> result;
// 对 50-100 之间的偶数回文数应用条件
// 使用 += 2 检查偶数索引定位
    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;
}
//启动主函数
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 函数。


相关文章