无线网站建设,国家示范校建设成果网站,微信公众号api接口大全,wordpress 怎么去掉优酷广告今天分享一道题目#xff0c;用三种方法来求解 二进制1的个数
方法1 我们的十进制除10和取余数就可以得到我们每一位的数字#xff0c;那我们的二进制也可 以
#includestdio.h
int num_find_1(unsigned int n)
{int count 0;while (n){if (1 n % 2){count;}n / 2…
今天分享一道题目用三种方法来求解 二进制1的个数
方法1 我们的十进制除10和取余数就可以得到我们每一位的数字那我们的二进制也可 以
#includestdio.h
int num_find_1(unsigned int n)
{int count 0;while (n){if (1 n % 2){count;}n / 2;}return count;
}
int main()
{int n 0;scanf(%d, n);int ret num_find_1(n);printf(%d, ret);return 0;
}这是一种方法另外一种就是我们可以用移位操作符来算
int num_find_1(int n)
{int i 0;int count 0;for (i 0; i 32; i){if (((n i) 1) 1){count;}}return count;
}
int main()
{int n 0;scanf(%d, n);int ret num_find_1(n);printf(%d, ret);return 0;
}
这个方法是不是也是特别妙呢当然还有更妙的方法请看 int num_find_1(int n)
{int i 0;int count 0;while (n){n n (n - 1);count;}return count;
}
int main()
{int n 0;scanf(%d, n);int ret num_find_1(n);printf(%d, ret);return 0;
}
相信看完总会学会一种方法今天的分享就到这里啦不知道大家有没有注意到我的开头不一样了嘻嘻。