long int fun(long int num)
{
if(num<10) // num изначально состоит
return 1; // из одной цифры
long int iLast = num%10; // последняя цифра
long int iFirst; // первая цифра num
long int pov = 1;
while(true) // выделяем первую цифру
{
iFirst = num/pov;
if(iFirst<10)break;
pov*=10;
}
if(iFirst!=iLast) // две крайние цифры
return 0; // не равны
if(num<1000) // num<1000 означает, что num
return 1; // имеет вид "nxn", или "nn"
else
{
num=(num-iFirst*pov-iLast)/10; // убираем две крайние цифры с num
return fun(num); // проверка оставшейся части
}
}
рекурсивный алгоритм
Нужно использовать только одну функцию, при этом не зная количество цифр в числе.
Вызов функции на С выглядит так:
long int fun(long int num)
функция возвращает 1 - если да и 0 - если нет.
Спасибо.