Nach Hause
Top.Mail.Ru Yandeks.Metrika
Forum: "Haupt";
Aktuelles Archiv: 2002.01.08;
Herunterladen: [xml.tar.bz2];

Nach unten

Neues Problem: + ( Finden Sie ähnliche Zweige


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;
beginnen
Result := 0 ;
T := Trunc(Ln(Z)/Ln(10));
while Z>0 do
beginnen
Inc(Result ,(Z mod 10) * Round(Exp((T)*Ln(10)))) ;
Z := Z div 10 ;
Dec(T) ;
ende
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());

und hier ist das Ergebnis:
выражение | время выполнения (для моего компа)
-------------------------------------------------- ---------
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 а в математике есть циклы ? :)



Seiten: 1 ganze Branche

Forum: "Haupt";
Aktuelles Archiv: 2002.01.08;
Herunterladen: [xml.tar.bz2];

nach oben









Speicher: 0.86 MB
Zeit: 0.043 c
14-22386
Dicht
2001-11-08 21:13
2002.01.08
Ist interessant Wie viel


7-22425
Andrey
2001-06-19 15:45
2002.01.08
Scannerfunktion


1-22253
Yakudza
2001-12-17 14:34
2002.01.08
Wie berechnet man Fakultat in Pascal?


4-22508
Gluka
2001-11-06 00:18
2002.01.08
Ist es möglich, den Cursor über das Fenster eines anderen Benutzers zu bewegen?


1-22029
neo_
2001-12-18 12:33
2002.01.08
tThread töten





Afrikanisch albanisch Arabic Armenisch Aserbaidschanisch Baskisch Weißrusse Bulgarian katalanisch Chinesisch (vereinfacht) Chinesische Tradition) kroatisch Tschechisch Dänisch Dutch Englisch estnisch Philippinisch Finnish Französisch
Galicisch Georgisch Deutsch Griechisch haitian Creole hebräisch Hindi ungarisch isländisch Indonesian irisch Italian Japanisch Koreanisch lettisch litauisch Makedonisch Malay Maltesisch Norwegian
persisch Polnisch Portugiesisch rumänisch Russisch serbisch Slovak Slowenisch Spanisch swahili Swedish Thai Türkisch Ukrainisch Urdu Vietnamesisch Walisisch Jiddisch Bengalisch bosnisch
cebuano Esperanto Gujarati Hausa Hmong igbo Javanisch kannada khmer Laotisch Lateinisch Maorisch Marathi Mongolisch nepali Pandschabi Somalisch Tamilisch Telugu yoruba
Zulu
Английский Französisch Deutsch Italienisch Португальский Russisch Spanisch