Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Я тоже так считаю. Хотя опытный кодер дложен знать... 20.10.08 12:07 Число просмотров: 3878
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
|
> http://thedailywtf.com/Articles/Out-of-All-the-Possible-Ans > wers.aspx > > Это прекрасно, я считаю.
Я тоже так считаю. Хотя опытный кодер дложен знать возможности языка, на котором он пишет и сколько времени будет выполняться программа.
Если это задача для школьника, то все равно "пятерка", потому что быстро и просчитает что нужно (написано без ошибок).
Для студента, это уже мало, тем более, если это курсач и именно по соответствующему языку программирования. Можно было бы покомпактнее и самое главное, чтоб работало побыстрее.
Что касается всего сыра-бора, который развели относительно поиска наиболее грамотного решения, то применение супер-пупер алгоритмов для таких простых задач неуместно, особенно для профессионала. Самое лучшее решение - это быстро написаное и достаточно быстро считающее. Еще профессионал должен выбирать инструментарий, адекватный решаемой задаче.
Что-то ментя это настолько затронуло, что я захотел проверить насколько я могу ошибиться. Подумал, что этот алгоритм может считать за время не больше секунды. Ошибся. Правда чуть оптимизировал исходный алгоритм (выкинул все непростые), но время не превысило десятых долей секунды.
#include <time.h>
#include <stdio.h>
int main( void ){
long t = clock();
for( long i = 20; i<=1000000000; i += 20 ){
if( i % 19 == 0 ){
if( i % 17 == 0 ){
if( i % 13 == 0 ){
if( i % 11 == 0 ){
if( i % 7 == 0 ){
if( i % 3 == 0 ){
printf( "%lu (%f sec.)\n", i, ( clock() - t ) / CLK_TCK );
return 0;
}
}
}
}
}
}
}
return 0;
}
---
19399380 (0.000000 sec.)
|
|
|