![]() |
![]() |
Gthley 14.10.2004 - 17:33 | Существует четырехзначное число.. Ну например 1234, как преобразовать его в 4321 ?!Что-то вроде такого XYZH -> HZYX |
Phoenix 1 - 14.10.2004 - 17:49 | на каком языке программирования для начала? или тебе тока алгоритм? |
Nickless 2 - 14.10.2004 - 17:54 |
y := (x mod 10)*1000 + ((x div 10)mod(10))*100 + ((x div 100)mod 10)*10 + (x div 1000) что-то типа этого |
Gthley 3 - 14.10.2004 - 18:01 |
Phoenix В принципе можно и на дельфе...Но тада мона и алгоритм.. На любом... |
Gthley 4 - 14.10.2004 - 18:02 | Nickless, спасибо...! |
siapk 5 - 15.10.2004 - 12:25 | Для 2 - Удобнее работать не с числом, а со строкой.... потом преобразовать в число ... |
Phoenix 6 - 15.10.2004 - 12:37 |
ileight := leight(str); for i := 0 to ileight do begin sStr := Copy(S,ileight-i,1); s := s + Str end; код не проверял, написал на вскидку |
Программист 7 - 15.10.2004 - 12:39 | Это задачка для студентов-балбесов, а не для программиста! |
Grim Ghost 8 - 15.10.2004 - 13:48 |
Без всяких преобразований... while (a<>0) loop c := mod(a,10); n := n*10 + c; a := (a - c)/10; end loop; |
VaS 9 - 15.10.2004 - 14:23 | ...и в результате мусор на выходе |
Grim Ghost 10 - 15.10.2004 - 14:59 | Почему мусор? У меня все работает, результат хранится в переменной n. |
Grim Ghost 11 - 15.10.2004 - 15:01 |
Вот весь код. declare a integer := 123456789; b integer := 10; c integer; n integer := 0; begin while (a<>0) loop c := mod(a,10); n := n*10 + c; a := (a - c)/10; end loop; dbms_output.put_line(n); end; |
Быстрый Шу 12 - 15.10.2004 - 15:19 |
Чё то не понял проблемы... s:='1234'; for i:=length(s) downto 1 do begin rez:=rez+s[i]; end; если на входе/выходе число, то отконвертить его в строку... |
зы 13 - 15.10.2004 - 15:37 |
одной строчкой это делается... a:=(a div 1000)+((a mod 1000) div 100)*10+((a mod 100)div 10)*100+((a mod 10)*1000) |
Grim Ghost 14 - 15.10.2004 - 16:19 | Ну, если заточка устроит, тогда одной. |
VaS 15 - 15.10.2004 - 16:47 | 11: Без строчки n integer := 0; был мусор :) |
tyvik 16 - 15.10.2004 - 17:27 |
делается это через стек mov ax,zn mov bx,0Ah xor cx,cx exitp: xor dx,dx div bx push dx cmp ax,0 je print inc cx jmp exitp print: inc cx и через loop получаем в обратном порядке |
Nickless 17 - 15.10.2004 - 17:35 | ну кто в бинарниках напишет?:) |
tyvik 18 - 15.10.2004 - 17:37 |
если тебя не устраевает асм, то можешь заточить под твой любимый паскаль, но так будет быстрее (личные разборки: зайди в аську *******) |
Gthley 19 - 15.10.2004 - 17:45 | Всем большое спасибо! |
Опоздавший 20 - 15.10.2004 - 22:05 |
А можно сделать красивый рекурсивный алгоритм... Но чувствую уже никому не будет интересно... |
saniok 21 - 15.10.2004 - 23:04 |
А можно так: i := 1024; s := str(i); s := s[4]+s[3]+s[2]+s[1]; i := IntToStr(s); |
saniok 22 - 15.10.2004 - 23:07 |
Извиняюсь, башка уже не варит: i := 1024; s := IntToStr(i); // ;-) s := s[4]+s[3]+s[2]+s[1]; i := StrToInt(s); // ;-) |