Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];

Вниз

Новая проблема :+(   Найти похожие ветки 

 
stalin   (2001-12-18 00:20) [0]

Как зная сколько цифр в числе математическим способом развернуть число (т.е было 135 , должно получися 531 ) ....... Вот ! ;+)


 
Blackweber   (2001-12-18 00:28) [1]

Возможно можно запустить цикл от 1 до length(num), в котором считывается первая цифра и ставится в конец числа.


 
Blackweber   (2001-12-18 00:34) [2]

т.е. 135>351>513


 
False_Delirium   (2001-12-18 01:02) [3]

Function Reverse(Z:Integer) : Integer ;
var T : Integer;
begin
Result := 0 ;
T := Trunc(Ln(Z)/Ln(10));
while Z>0 do
begin
Inc(Result ,(Z mod 10) * Round(Exp((T)*Ln(10)))) ;
Z := Z div 10 ;
Dec(T) ;
end
end;


 
Sergey_n   (2001-12-18 01:37) [4]

могу предложить вариант в C++

int x = 27531; //которое надо развернуть
int y = 0; //куда развернуть
int n=(int)log10(x); //длина числа которе развернуть
for (int i=n;i>=0;i--){
y=y+((int)(x/pow(10,i))-10*(int)(x/pow(10,i+1)))*(int)pow(10,n-i);
}


 
False_Delirium   (2001-12-18 02:05) [5]

>Sergey_n У тебя 14 операций за итеррацию..а у меня 10...:)..хе..:))..:)))...кто меньше..?.:)))


 
Sergey_n   (2001-12-18 03:16) [6]

Вопрос ставился написать, а не кто меньше. В данном случае задача выполнена. Кстати как ты считал(итерации)????


 
False_Delirium   (2001-12-18 04:14) [7]

А зачем ты тогда писал, если задача была уже выполнена, когда был написан первый пример..?? Количество итераций -- это количество повторений цикла, а количество операций -- это количество арифметических действий за одну итерацию.


 
Sergey_n   (2001-12-18 22:59) [8]

2False_Delirium когда я начал писать она еще не была выполнена.

>Количество итераций -- это количество повторений цикла, а количество
>операций -- это количество арифметических действий за одну итерацию.
это ежу понятно. А ты уверен что в нутрях фу-й Inc, Round, ... арифметических действй столько, сколько ты думаешь?????


 
False_Delirium   (2001-12-19 00:10) [9]

Хе..:)... а вот в Inc уверен, а вот Round дествительно выполняется в 3 операции, его вообще убрать можно.....а вот что ты скажешь про pow ...:)... ?..:)


 
KilkennyCat   (2001-12-19 02:27) [10]

но ведь все это не математический способ.


 
Sergey_n   (2001-12-19 04:41) [11]

2False_Delirium я не поленился и потестил используя след. прог.
Label1->Caption = DateTimeToStr(Now());
double x = 20,y;
for (register __int16 i=0;i<2767;i++)
for (register __int16 j=0;j<32767;j++)
<выражение для теста>;

Label2->Caption = DateTimeToStr(Now());

и вот результат:
выражение | время выполнения (для моего компа)
-----------------------------------------------------------
pow(10,x) | 19 сек
exp(x) | 28 сек
ln(x) | 25 сек
-----------------------------------------------------------

итого exp+ln = 53 сек, pow+pow+pow = 57 сек
ну а если к exp+ln добавить Inc, Round, Dec, ....
то можно ещё поспорить кто быстрее.


 
False_Delirium   (2001-12-19 05:16) [12]

На паскале напиши для начала, а затем сравни..:))...чтобы тестировать...
а то нужно тогда два языка в контексте скорости выполнения рассматривать..:)..
Да...так ты тестируй сразу функции "переворота"....


 
False_Delirium   (2001-12-19 05:32) [13]

>KilkennyCat А какой же это способ..??.:)...именно математический, никаких других операций использовано не было..


 
False_Delirium   (2001-12-19 05:37) [14]

Да, кстать...DateTimeToStr(Now())- это немного не подходящая ф-ция, для таких тестов..:))..


 
Sergey_n   (2001-12-19 06:10) [15]

2False_Delirium Delphi лень ставить, а чем DateTimeToStr(Now()) тебе не нравится? Если ты о точности, то увелич цикл(или их кол-во), чтобы дольше выполнялось.


 
KilkennyCat   (2001-12-20 01:33) [16]

>False_Delirium а в математике есть циклы ? :)



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.59 MB
Время: 0.03 c
4-22498
cher_gvf
2001-11-05 20:12
2002.01.08
Как узнать запущен ли такой процесс?


1-22119
Socol
2001-12-15 10:45
2002.01.08
Помогите по двум вопросам!


3-21906
Юрий Жуков
2001-11-21 09:40
2002.01.08
Oracle ADO vs DOA - fido7.ru.delphi.db


1-22115
DerZky
2001-12-19 18:14
2002.01.08
Как сравнить даты и разницу между ними получить Integer


3-21958
bk
2001-12-05 19:15
2002.01.08
Pomogite kto moget ADO Unikal nomer





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский