Tämä oli yksi Microsoftin työhaastattelukysymys ja minulle jäi epäselväksi mitä tässä haettiin. Tekeekö tuo koodi mitään järkevää?
Describe what this function does, and how it works?
unsigned mystery(unsigned x) {
unsigned int i=0;
while (x) {
x = x & ( x - 1);
i ;
}
return i;
}
Describe what this function does, and how it works?
unsigned mystery(unsigned x) {
unsigned int i=0;
while (x) {
x = x & ( x - 1);
i ;
}
return i;
}
Vastaukset 10
Vanhimmat
Palauttaa nollan.
Laskee x:n ykkösbittien lukumäärän.
Kiitos vastauksesta. Ei tota kyllä helposti tajua, mutta kokeilemalla huomaan, että kyllä se laskee ne ykkösbitit. Harmi kun en tajunnut kokeilla tulostaa bitteitä testin aikana, niin yhteyden olisi varmasti huomannut.
Eihän tuota yhteyttä ole helppo nähdä, ellei ole koskaan perehtynyt tuohon erikoistietämystä vaativaan asiaan. Siinä mielessä hieman outo työhaastattelutehtäväksi.
Onko tuo joissain piireissä salatiedettä?
Eikös nämä ole ohjelmoinnin ensimmäiset asiat, ainakin vanhan liiton aikaan.
Työhaastattelu = mentaali lobotomia.
Vaikka tuon pystyisi ratkaisemaankin normaaliolosuhteissa, niin työhönottotilanne sulkee ratkaisun mahdollisuuden pois mielestä.
Saman tietysti aiheuttaa esimiehen kiirehtimisyritykset irl.. Pikkasen ikävä sanoa, mutta ne jotka pystyy hanskaamaan stressin tällaisissa tilanteissa ovat muita todennäköisemmin myös psykopaatteja.
Onko pelkkä "unsigned x" riittävä? Mitä tyyppiä se tuossa tarkoittaa?
On. Sama kuin "unsigned int x".
Tuossa riittää perusohjelmointiosaaminen ja vielä muistaa tuon "&" operaattorin tarkoutuksen, joka muistaakse oli binäärioperaattori tossa kohtaa..
Loppe menee ihan testaamalla jos ei muuten aukene, jotta ei mikään ihme tehtävä. Tuossa testataan kykyä tunnistaa ohjelman tarkoitus noin geneerisesti jotta ei huono tehtävä.
..typoo tuli niin maan penteleesti, ei ole musta kirjuriksi ainakaan :D