![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
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 ![]() |
Ну ок. Паскаль не помню и не хочу вспоминать.
// ввели число n ............... public static int parseNum(int n) { int result = 0; // результирующее число int sign = (n > 0) ? 1 : -1; // переменная, кот. отвечает за знак. если число положит.,то 1, иначе -1 int des = 1;// переменная, отвечающая за степень 10 при восстановлении результирующего числа n = Math.abs(n); // возьмем исходное число по модулю, тк его знак мы уже учитываем while (n > 0) { int ch = n % 10; // отщепляем с конца очередную цифру if (ch != 1) { // если она не 1, то спокойно приписываем к результату, домножив на соотв. степень 10 result += ch * des; //result = result+ ch*des; des *= 10; } n /= 10; } return sign * result;// получаем новое число с учетом знака } *** a+=b <-> a=a+b a*=b <-> a=a*b и т.д. ....................... / - это div % - это mod |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 28.5.2025, 21:46 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru