![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Nutka_Chayka |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 2 Регистрация: 3.10.2012 Город: Харьков, Украина Вы: студент ![]() |
Добрый вечер!=)
Помогите, пожалуйста, решить вот такую задачу: Дано целое число. Получить новое число, удалив из исходного все единицы. Порядок цифр оставить прежним. У меня вот что получилось, но это срабатывает только в том случае, если число например 1234. Если взять 4321 (то есть в конце стоит 1), то просто выдает исходное=((( Как мне исправить это? Что нужно дописать, чтобы даже если к в конце стоит 1, срабатывало? Очень-очень нужно...(( program lab5; {$APPTYPE CONSOLE} uses SysUtils; var n,b,a: Integer; begin Writeln ('vvedite chislo' ); If n<0 then n:=-n; Readln (n); a:=n mod 10; b:=a; n:=n div 10; repeat a:= (n mod 10) ; if (a<>1) then begin b:=b*10+a; end; n:= n div 10; while a=1 do a:= (n mod 10) until n=0 ; a:=b mod 10; n:=a; b:=b div 10; repeat a:= (b mod 10) ; n:=n*10+a; b:= b div 10; until b=0 ; write (n); Readln; end. |
![]() ![]() |
Sergio Ramos |
![]()
Сообщение
#2
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 86 Регистрация: 16.11.2010 Город: Saratov ![]() |
Что если исходное число представить как массив цифр. Затем пройтись по этому массиву , заменив 1, к примеру, на -1. И по все тому же массиву восстановить новое число.
например, 2314 a0 a1 a2 a3 2 3 1 4 ------------- a0 a1 a2 a3 2 3 -1 4 Ответ 234 Если число отрицательное, то достаточно ввести какую-нибудь переменную sign и в конце домножить результат на sign. |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 28.5.2025, 1:58 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru