Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.09.2018, 12:55   #1
DimaDynasty
Пользователь
 
Аватар для DimaDynasty
 
Регистрация: 10.09.2018
Сообщений: 26
По умолчанию Заменить каждую цифру на ее дополнение

Здравствуйте, помогите пожалуйста с решением задачи.
Дано целое положительное число. Необходимо заменить каждую цифру на её дополнение до максимальной в числе
QQ
DimaDynasty вне форума Ответить с цитированием
Старый 10.09.2018, 13:16   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

помогаю.
999...9 {максимальное число с ЗАДАННЫМ(или вычисленным) количеством цифр} - n{наше число}

и возможные варианты для ЭТОГО же
999...9 =1000...0 -1
1000...0 =1* (10**x) { =1E+x}
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 10.09.2018, 13:23   #3
DimaDynasty
Пользователь
 
Аватар для DimaDynasty
 
Регистрация: 10.09.2018
Сообщений: 26
По умолчанию

А можно по подробнее?
QQ
DimaDynasty вне форума Ответить с цитированием
Старый 10.09.2018, 13:35   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Код:
DECLARE @i int
SET @i = 192
SELECT CAST('1'+REPLICATE('0',LEN(CAST(@i AS varchar))) AS int)-@i-1
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 10.09.2018 в 13:37.
Аватар вне форума Ответить с цитированием
Старый 10.09.2018, 13:37   #5
DimaDynasty
Пользователь
 
Аватар для DimaDynasty
 
Регистрация: 10.09.2018
Сообщений: 26
По умолчанию

Спасибо большое)) Выручили ))
QQ
DimaDynasty вне форума Ответить с цитированием
Старый 17.09.2018, 13:40   #6
DimaDynasty
Пользователь
 
Аватар для DimaDynasty
 
Регистрация: 10.09.2018
Сообщений: 26
По умолчанию

А можно чтоб число было универсальное?
QQ
DimaDynasty вне форума Ответить с цитированием
Старый 17.09.2018, 13:46   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Так в том примере оно и так универсальное. Ну почти, положительное естественно и не больше 999999999. Делай хранимку и число передавай параметром. Или функцию и в запросе обращайся к ней. И так чуть проще
Код:
SELECT CAST(REPLICATE('9',LEN(CAST(@i AS varchar))) AS int)-@i
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 17.09.2018, 13:48   #8
DimaDynasty
Пользователь
 
Аватар для DimaDynasty
 
Регистрация: 10.09.2018
Сообщений: 26
По умолчанию

Поставьте число 500 пожалуйста, пример:вводим число 500 должно выводиться 55
QQ
DimaDynasty вне форума Ответить с цитированием
Старый 17.09.2018, 13:53   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

У, я не так понял. То что у меня - это так же как и evg_m понял. Ща попробую

Код:
DECLARE @i int,
        @s varchar(10)
set @i = 500
set @s = CAST(@i AS varchar(10))
SELECT CAST(REPLICATE(CASE WHEN CHARINDEX('9',@s)>0 THEN '9'
                           WHEN CHARINDEX('8',@s)>0 THEN '8'
                           WHEN CHARINDEX('7',@s)>0 THEN '7'
                           WHEN CHARINDEX('6',@s)>0 THEN '6'
                           WHEN CHARINDEX('5',@s)>0 THEN '5'
                           WHEN CHARINDEX('4',@s)>0 THEN '4'
                           WHEN CHARINDEX('3',@s)>0 THEN '3'
                           WHEN CHARINDEX('2',@s)>0 THEN '2'
                           WHEN CHARINDEX('1',@s)>0 THEN '1'
                           ELSE '0' END, LEN(@s)) AS int)-@i
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 17.09.2018 в 14:08.
Аватар вне форума Ответить с цитированием
Старый 17.09.2018, 14:07   #10
DimaDynasty
Пользователь
 
Аватар для DimaDynasty
 
Регистрация: 10.09.2018
Сообщений: 26
По умолчанию

Спасибо, все очень понятно))
QQ
DimaDynasty вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вводится строка произвольного текста, в котором есть и цифры. Удвоить каждую цифру.(PascalABCNET) FlayGlam Помощь студентам 0 03.12.2016 09:56
В алфавитно-цифровой строке удвоить каждую цифру. Dari8093 Общие вопросы C/C++ 9 18.12.2015 12:39
Заменить 1-ю цифру на единицу hackerbond Помощь студентам 0 02.10.2014 09:06
Заменить цифру makskovalko Помощь студентам 1 08.10.2013 00:49
Дано целое число. Уменьшить каждую цифру этого числа на 1. Makcumqa Помощь студентам 2 18.03.2010 08:09