/* pcount.c * For use in CSE351 Lec 12/13 on Recursion * * Intended for use with a gdb demo: * gcc -Wall -std=c18 -g -O1 -o pcount pcount.c */ #include #include long pcount_r(unsigned long x) { if (x == 0) return 0; else return (x & 1) + pcount_r(x >> 1); } int main(int argc, char* argv[]) { if (argc != 2) { printf("Usage: pcount \n"); exit(0); } long x = atoi(argv[1]); printf("There are %ld 1's in %ld\n", pcount_r(x), x); return 0; }