Δημοσιεύτηκε: 29 Αύγ 2011, 22:51
Α, οκ! Οπότε, ορίστε μια άλλη υλοποίηση με αναδρομή...
- Κώδικας: Επιλογή όλων
#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;
}