Badula (badula) wrote,
Badula
badula

Научное

Некоторые люди ходят в университеты не потому, что их туда пинком оформили мама и папа, а потому, что тяга к знаниям перевешивает тягу к гонкам на подержанном мотоцикле с утра до ночи с последующими оргиями.

Закончив универтитеты, эти редкие люди составляют блестящие резюме и начинают искать достойную себя работу.

Один из свежих выпускников торонтского университета с математическим уклоном, изучавший computer science и настоящий канадский китаец пришёл трудоустраиваться программистом в компанию, производящую навороченные микросхемы.

На интервью выпускнику была предложена простенькая задача, для того, чтобы оценить стиль оформления первичных навыков. Задача - написать функцию, преобразующую целое число в строку, так сказать. Без наворотов и обвеса даже.

Первая попытка
char *itoa(int i) {
  char buffer[20);
  return sprintf(buffer, "%d", i);
}
Вторая попытка
char *itoa(int integer) { 
char str[20]; 
for (each digits in integer = i) { 
 
   int in = integer[i]; 
 
   switch  (in) { 
   case 0: 
    str[i] = 0; 
    break; 
   case 1: 
   str[i] = 1; 
   break; 
 
and so on to 9
 
} 
} 
}

But I don't know how to extract a digit from a number...
Третья попытка спасти положение
char *itoa(int integer) { 
int factor = 1; 
char str[20]; 
 
while (round(integer/1) != 0) { 
 
 
factor = factor*10; 
} 
 
factor = factor/10; 
 
while (factor > 1) { 
  
int in = round(integer/factor); 
  
switch  (in) { 
  
case 0:  
str[i] = 0;  
break; 
   
case 1: 
   
str[i] = 1; 
   
break; 
  
and so on to 9
  
} 
 
factor = factor/10; 
} 
}

Дзен? Дзен.

Впрочем, оно и понятно. Вот, скажем, посмотрите на рекламу справа от книги столпа алгоритмического мастерства... На халяву-то, что угодно интересней какого-то там искусства программирования.

Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 50 comments