Δημοσιεύτηκε: 29 Αύγ 2011, 22:51
από migf1
Α, οκ! Οπότε, ορίστε μια άλλη υλοποίηση με αναδρομή...

Κώδικας: Επιλογή όλων

#include <stdio.h>
#include <stdlib.h>

typedef unsigned int NType; // αλλάξτε το int με οποιονδήποτε τύπο ακεραίου (char, short, long, long long)

//-----------------------------------------------------------------------------------
int nbits( NType n, int bitcount )
{
if (n == 0)
return bitcount;

nbits( n >> 1, ++bitcount );
}
//-----------------------------------------------------------------------------------
int main( int argc, char **argv )
{
NType n = 256; // αλλάξτε με οποιονδήποτε θετικό ακέραιο

if (argc > 1)
n = !(n=abs( atoi( argv[1] )) ) ? 1 : n;
else
printf( "usage:\n\t%s num (num > 0)\n\tusing default num = %d\n\n", argv[0], n );

printf( "%d binary bits needed for %d\n\n", nbits(n, 0), n );

return 0;
}