IPB

Здравствуйте, гость ( Вход | Регистрация )

> Задача на паскале, Не получается решить задачу на паскале. Половина сделана, а дальше сту
Nutka_Chayka
сообщение 3.10.2012, 17:00
Сообщение #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
сообщение 5.10.2012, 19:13
Сообщение #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
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме


Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 28.5.2025, 21:46

Книжки в помощь: "Сборник заданий по высшей математике" Кузнецов Л.А., "Сборник заданий по высшей математике" Чудесенко В.Ф., "Индивидуальные задания по высшей математике" Рябушко А.П., и другие.




Зеркало сайта Решебник.Ру - reshebnik.org.ru