Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Задания на Sql

Виталий Бушков Ученик (94), на голосовании 11 часов назад
11. Напишите функцию IsPalindrom(P) целого типа, возвращающую 1, если целый па- раметр Р (P > 0) является палиндромом, и 0 в противном случае. Код для чайников
Голосование за лучший ответ
Алексей Шиляев Мыслитель (5286) 4 недели назад
Для определения того, является ли число палиндромом, нужно проверить, равны ли первая цифра числа и последняя, вторая цифра числа и предпоследняя и так далее. Если все пары цифр равны, то число является палиндромом.

Ниже приведён пример функции на языке SQL для определения, является ли число палиндромом:
 CREATE FUNCTION IsPalindrom(@P INT) RETURNS BIT AS 
BEGIN
DECLARE @Result BIT = 1;

WHILE (@P >= 10)
BEGIN
IF RIGHT(@P, 1) <> LEFT(@P, 1)
SET @Result = 0;

SET @P = @P / 10;
END

IF @P % 10 <> @P THEN
SET @Result = 0;
END

RETURN @Result;
END
GO
Эта функция принимает целочисленный параметр @P и возвращает BIT, где значение 1 указывает, что число является палиндромом, а 0 — нет. Функция работает следующим образом:
1. Проверка начального условия: если число меньше или равно 10, оно является палиндромом.
2. В цикле while проверяются пары соседних цифр. Если они не равны, результат устанавливается в 0.
3. После цикла проверяется последняя цифра числа. Если она не совпадает с первой, результат также устанавливается в 0.
4. Возвращается результат.

Пример использования функции:
 DECLARE @Number INT = 12321; 
SELECT dbo.IsPalindrom(@Number); -- Вернёт 1

DECLARE @Number2 INT = 1234;
SELECT dbo.IsPalindrom(@Number2); -- Вернёт 0
Похожие вопросы