произведение двух трехзначных чисел палиндром - PullRequest
0 голосов
/ 23 сентября 2018

Я написал следующий код для нахождения первого палиндрома, полученного путем произведения двух трехзначных чисел:

#include <stdio.h>

int main()
{
 int pro,d,sum=0,c;
 for (int a=100;a<1000;a++)
{
    for (int b=a;b<1000;b++)
    {
        pro=a*b;
        d=pro;
        while (d!=0)
        {
            c=d%10;
            sum= sum*10 + c;
            d=d/10;
        }
        if (sum==pro)
        {
            printf("%d is a palindrome \n",sum);
            return 0;
        }
    }
}
 return 0;
}

Но когда я запускаю код, он не дает никакого вывода.Любая помощь?

1 Ответ

0 голосов
/ 23 сентября 2018

Вам необходимо сбрасывать значение суммы после каждой итерации или внутренний цикл for, иначе он использовал предыдущее значение итерации в следующей последующей итерации.

Код:

#include <stdio.h>

int main()
{
   int pro,d,sum=0,c;
 for (int a=100;a<1000;a++)
{
    for (int b=a;b<1000;b++)
    {
        pro=a*b;
        d=pro;
        while (d!=0)
        {
            c=d%10;
            sum= sum*10 + c;
            d=d/10;
        }
        if (sum==pro)
        {
            printf("%d is a palindrome \n",sum);
            return 0;
        }
        sum=0;
    }
}

    return 0;
}

Выход:

10201 is a palindrome
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...