gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 13:27:22 24 4
gpt4 key购买 nike

我试图让我的程序只选择最大的产品而不是所有的产品。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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com