Описание алгоритма
Построение алгоритма основано на том, что легче проверить свойство быть палиндромом, чем свойство быть квадратом. Поэтому целесообразно сначала вычислять квадрат числа, а затем проверять, является ли десятичное представление квадрата числа палиндромом. С учетом этого обстоятельства наиболее абстрактный проект алгоритма можно построить следующим образом:
Структуры данных
Исходя из анализа алгоритма решения данной задачи целесообразно объявить следующие переменные:
По логике работы алгоритма переменные count, limit и square должны принимать неотрицательные целые значения. Поэтому они должны иметь тип unsigned int. Поскольку предельное значение счетчика постоянно, объявление переменной limit можно дополнить модификатором const.
Для хранения прямого и инверсного представлений квадрата счетчика можно зарезервировать 2 массива символов размером по 6 байт. Такая размерность массивов обеспечивает хранение максимального значения символического представления квадрата счетчика (10000), длиной 5 байт плюс символ ’\0’, который обозначает конец информационной части символьной строки. Размерность массивов может быть задана директивой препроцессора define.