题目描述
输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。
输入描述:
输入一个整数(int类型)
输出描述:
这个数转换成2进制后,输出1的个数
c++ code:
#include<iostream>
#define MAX 100
using namespace std;
int main(){
int n;
int c[MAX];
cin >> n;
int index =
0;
int sum =
0;
while (n!=
0)
{
c[
index] = n %
2;
n /=
2;
index++;
}
for (
int i =
0; i <
index;i++)
{
if (c[i] ==
1)
{
sum++;
}
}
cout <<
sum ;
return 0;
}
idea: 1、先把数据转换为二进制,但是顺序是反的。只统计1的个数,正序逆序都一样,没必要再改回来顺序了。