Помогите! Please! Никак не могу решить задачу :
Надо изменить порядок цифр в числе на обратный. Например:7658 на 8567!
ПОМОГИТЕ!!! PLEASE!!! ??? ???
Дык значит решать пробовал? Покажи, что смог сделать.
Какими ф-ми/процедурами собираешься пользоваться?
Пробовал. Хочу использовать операторы цикла (WHILE и FOR).
Я посчитал кол-во цифр в числе.
Тут надо наверное как-то число разбить на цифры (отдельные переменные для
каждой цифры).Но никак у меня не получается! ??? :-[
можно делить на 10 брать целую часть вычитать из нецелого целое и умножать на 10. выводить полученную цифру и так далее.. пока не дойдешь до 1-ой цифры.
вроде так..
А почему бы не преобразовать число в строку, поменять порядок символов и преобразовать обратно в число?
fms,а как быть если число очень-много-значное?
Значит надо использовать оператор цикла.
Как бы сделать так, чтобы каждая цифра присваивалась своей переменной ?
??? ??? ??? ???
Код
Var
K : LongInt;
Function SwapNum(nn : LongInt) : LongInt;
Var S,Sres : String;
Result : LongInt;
i : Byte;
Code : Integer;
Begin
If nn<10 then
Begin
SwapNum:=nn;
Exit;
End;
Str(NN,S);
Sres:=S;
For i:=1 to Length(S) do Sres[Length(S)-i+1]:=S[i];
Val(Sres,Result,Code);
If Code=0 then SwapNum:=Result else SwapNum:=0;
End;
Begin
Write('Введите число: ');Readln(k);
Write('Результат : ',SwapNum(k));
End.
Спасибо APAL ,но мне надо сделать это используя оператор WHILE.
Цитата
fms,а как быть если число очень-много-значное?
Значит надо использовать оператор цикла.
Как бы сделать так, чтобы каждая цифра присваивалась своей переменной ?
??? ??? ??? ???
а какая разница?! очень многозначное или не очень? ты просто в цикле сделай деление на 10 и все. а если ты сделаешь чтобы цифра да еще и своей переменной то там вообще свихнуться можно.. по моему..
trminator
18.11.2003 23:31
Народ, вы о чем? Какие строки? Если число неотрицательное, то вот решение
Код
program forforum;
var a, b: integer;
begin readLn(a); b:=0;
while a<>0 do begin
b:=b*10+a mod 10;
a:=a div 10
end;
writeLn(b)
end.
Можно сделать используя стек. Преобразовать число в строку и потом создать список и заполнить его спереди и получиться наоборот ;)
trminator
19.11.2003 23:37
Цитата
Можно сделать используя стек. Преобразовать число в строку и потом создать список и заполнить его спереди и получиться наоборот ;)
Да, это видимо будет намного быстрее и проще, чем один-единственный оператор цикла. А насколько меньше потребуется памяти...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.