該代碼試圖找到由兩個2位數字產品製成的最大回文。答案是91 * 99 = 9009,但我一直得到990,這甚至不是迴文。我非常感謝幫助!由兩個3位數字與C產品構成的最大回文數C
#include <stdio.h>
int main()
{
int i = 10;
int j = 10;
int a = 0;
int b = 0;
int array[100] = {0};
int divider = 10;
int num;
int great;
int product;
int n;
int flag;
/*Loop through first 2 digit number and second 2 digit number*/
while (i<100)
{
while (j < 100)
{
product = i*j;
array [a] = product % 10;
n = product/divider;
while (n != 0)
{
a++;
num = n%10;
divider *=10;
array[a]=num;
n = product/divider;
}
flag = 0;
while (b<a)
{
if (array[b] != array[a])
{
flag = 1;
}
b++;
a--;
}
if (flag == 0)
{
great = product;
}
j++;
a = 0;
b = 0;
}
i++;
}
printf("The largest palindrome is %d \n", great);
return 0;
}
如果你得到的東西不是迴文,你是否試圖專注於檢查數字是迴文的代碼部分?嘗試縮小你的問題... – CygnusX1
只是對代碼的評論...而不是使用一個單片代碼塊,將它分成函數...像'int is_palindrome(int in)'。這將更容易理解和調試 – knightrider
只需對算法發表評論...您正在嘗試查找最大的迴文編號...因此,最好從最高點開始檢查產品,並在找到第一個時候停止迴文編號。 – knightrider