一个正整数二进制中所含1的数目
二进制是由0和1所构成的,下面将用代码统计任意一个正整数化为二进制后所含1的数目
![一个正整数的二进制中所含1的数目 一个正整数的二进制中所含1的数目](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzk3Mi85ODIyMjAzYmQzN2MzYjU0YTVmM2NlYWU0MTg4MTg1NC5KUEVH)
![一个正整数的二进制中所含1的数目 一个正整数的二进制中所含1的数目](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzM5My8wNTdiY2Q2N2EwNTBkMjEyZDRlMDcwMjVmNjQ2MzU0MS5KUEVH)
对输入要求进行分析
-
首先要进行多组输入,对于多组输入在C/C++中常用的语句scanf("%d",&n); while(cin>>n){}
-
其次要从用户获取一个正整数C语言中用scanf,C++中用cin
-
将所获正整数化为二进制,方法:对正整数反复除以2直至商为零时取余
-
统计二进制中所含1的数目,因为该正整数化为二进制的数是由该正整数反复除二时的所得的余数构成的,所以记录余数出现1时的次数即可。
-
![一个正整数的二进制中所含1的数目 一个正整数的二进制中所含1的数目](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzQ3MC84MTIxMThhM2MxODMyMWRkZjJmMDE0YjlhZTMxNGQ1Ni5KUEVH)
![一个正整数的二进制中所含1的数目 一个正整数的二进制中所含1的数目](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzQ2MS83NzE1ZTk2ODRkNzdkZWQ2NTE0ZjEyZjE3ZGE4MTYwZC5KUEVH)
![一个正整数的二进制中所含1的数目 一个正整数的二进制中所含1的数目](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzczNC8xNzBiNDYxZTg4ZWE0ZGFiZjE5MzU5YjNkOWJkZGJjZS5KUEVH)