c++ - Euler #4 找到由两个 3 位数的乘积组成的最大回文

标签 c++

我试图让我的程序只选择最大的产品而不是所有的产品。 P.S 我知道有更有效的方法可以做到这一点(例如取出重复项)但我想这样做。

   #include <iostream>

using namespace std;

bool isPal(int);

int main()
{
    int pal;
    // Finds largest product
    for (int a = 100; a < 1000; a++)
    {
        for (int b = 100; b < 1000; b++)
        {
            pal = a * b;
            if (isPal(pal))
            {
                cout << pal << "(" << a << "*" << b << ")" << endl;
            }
        }
    }
    system("pause");
    return 0;
}


bool isPal(int num)
{
    bool status = true;
    int digit, rev = 0, ck_num; // Added new variable
    ck_num = num; // Assigned it to variable num

    // Tests for palindrome
    while (num)
    {
        digit = num % 10;
        num /= 10;
        rev = rev * 10 + digit;
    }

    if (rev == ck_num) // Checked it against unchanged variable
        status = true;
    else
        status = false;
    return status;

}

最佳答案

您可以创建一个变量来存储其中最大的回文。并对照它检查每个回文。

例如:

int largest = 0;

if (pal > largest) {
    largest = pal;
}

if 语句将进入“if (ispal(pal))”,您应该在程序顶部创建 largest。 在程序结束时,您可以显示最大以查看答案。

完整代码:

#include <iostream>

using namespace std;

bool isPal(int);

int main()
{
    int largest;
    int pal;
    // Finds largest product
    for (int a = 100; a < 1000; a++)
    {
        for (int b = 100; b < 1000; b++)
        {
            pal = a * b;
            if (isPal(pal))
            {
                if (pal > largest) {
                    largest = pal;
                }
            }
        }
    }

    cout << "Answer: " << largest << endl;
    system("pause");
    return 0;
}

关于c++ - Euler #4 找到由两个 3 位数的乘积组成的最大回文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32898548/

相关文章:

c++模板类成员struct初始化语法糖

c++ - OpenGL 漫射照明问题

c++ - Eclipse C++ 默认 "Hello World"错误

C++ 从函数错误 : left of must have class/struct/union 返回 GLM 矩阵

c++ - 分析帖子请求

c++ - 了解此示例中的移动构造函数行为

c++ - HPX 最小两个节点示例设置?

c++ - Beaglebone 上的 Gtk+ 绑定(bind)(arm linux)

c++ - 在模板中实例化模板对象

c++ - 使用 OpenGL ES glDrawElements 绘制正方形不起作用