gpt4 book ai didi

c - 用 C 语言解决 Project Euler #4

转载 作者:太空宇宙 更新时间:2023-11-04 08:47:40 26 4
gpt4 key购买 nike

我试图用C语言解决Project Euler的问题4,但总是得到错误的答案。

// Project Euler - Problem 5 
// 09/01/2014
#include <stdio.h>

int a,b,c,digits[14],e,y,z,biggestNum;

void isPalindrome (int x)
{
a = -1;
c = 0;
b = x;
while (b != 0)
{
digits[c] = (b % 10);
b=b/10;
c++;
}
while (c>=a)
{
if(digits[++a]!=digits[--c])
{
break;
}
if(a==c) { biggestNum=x; }
else if(a==c-1) { biggestNum=x; }
}
}

int main (void)
{
for(y=10; y<1000; y++)
{
for(z=10; z<1000; z++)
{
isPalindrome(y*z);
}
}
printf ("%d",biggestNum);
return 0;
}

有人能告诉我我的代码有什么问题吗?也许在检查 num 是否是 Palindrome 函数?谢谢 The Problem

最佳答案

您的代码没有找到最大的回文,如果您遍历数字,它会找到最后一个回文

10* 10, 10 * 11, 10 * 12, .... 10 * 999
...
999 * 10, 999 * 11, .... 999 * 999

如果最大的回文恰好是(比方说)750 * 750,而且 999 * 11 也是回文,则 999 * 11 将覆盖正确答案。

每次您的答案都大于您之前的最大答案时,您需要进行测试。

关于c - 用 C 语言解决 Project Euler #4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21024509/

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