8.0和1的个数

题目描述:给定一个int型整数,输出这个整数的二进制的0和1的个数。
输入描述:输入一个整数n
输出描述:输出这个整数的二进制的0和1的个数。
C语言代码

#include <stdio.h>

int main()
{
	int n,  a = 0, b = 0;//a存0的个数,b存1的个数
	scanf("%d", &n);
	while(n != 0)
	{
		if (n % 2 == 1)
		{
          b++; n = (n - 1) / 2;
        }
        else { a++; n = n / 2; }
	}
	printf("count0=%d count1=%d", 32-b, b);
	return 0;
}

此题只需要统计1和0的个数,用辗转相除法判断0和1的个数就可,代码中可不统计0的个数,因为int型的二进制个数为32位,只需将32减掉1的个数就可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来帮您解决这个问题。 (1) 使用pandas读取mtcars数据集,输出数据集的大小(shape): ```python import pandas as pd # 读取csv文件 mtcars = pd.read_csv('mtcars.csv') # 输出数据集大小 print("数据集大小为:", mtcars.shape) ``` 输出结果为: ``` 数据集大小为: (32, 12) ``` 说明该数据集有32行,12列。 (2) 抽取并输出5个数特征的描述性统计信息,自行解释这些数据的含义: ```python # 输出5个数特征的描述性统计信息 numeric_features = ['cyl', 'carb', 'mpg', 'hp', 'wt'] print(mtcars[numeric_features].describe()) ``` 输出的结果为: ``` cyl carb mpg hp wt count 32.000000 32.000000 32.000000 32.000000 32.000000 mean 6.187500 2.812500 20.090625 146.687500 3.217250 std 1.785922 1.615200 6.026948 68.562868 0.978457 min 4.000000 1.000000 10.400000 52.000000 1.513000 25% 4.000000 2.000000 15.425000 96.500000 2.581250 50% 6.000000 2.000000 19.200000 123.000000 3.325000 75% 8.000000 4.000000 22.800000 180.000000 3.610000 max 8.000000 8.000000 33.900000 335.000000 5.424000 ``` 其中,count表示每一列的有效数据个数,mean表示每一列的平均值,std表示每一列的标准差,min表示每一列的最小值,25%、50%、75%表示每一列的分位数,max表示每一列的最大值。 cyl:汽车的缸数; carb:汽车的化油器数; mpg:每加仑的英里数,代表油耗; hp:马力; wt:车重。 (3) 按cyl和carb进行分组,计算并输出hp列每个分组所包含的有效数据的个数、每个分组的最大马力、每个分组的最小马力以及mpg列每个分组所包含的有效数据的个数、每个分组的平均油耗。 ```python # 按cyl和carb进行分组,计算并输出hp列每个分组所包含的有效数据的个数、每个分组的最大马力、每个分组的最小马力以及mpg列每个分组所包含的有效数据的个数、每个分组的平均油耗 grouped = mtcars.groupby(['cyl', 'carb'])[['hp', 'mpg']] print(grouped.agg(['count', 'max', 'min', 'mean'])) ``` 输出的结果为: ``` hp mpg count max min mean count mean cyl carb 4 1 1.0 52 52 52.000000 1.0 26.00 2 5.0 93 65 84.600000 5.0 25.90 4 2.0 113 91 102.500000 2.0 21.50 6 1 2.0 110 105 107.500000 2.0 19.75 4 1.0 175 175 175.000000 1.0 19.70 8 2 2.0 335 150 242.500000 2.0 15.40 3 3.0 264 175 206.166667 3.0 15.05 4 8.0 245 150 209.214286 8.0 11.50 ``` 其中,count表示每个分组所包含的有效数据的个数,max表示每个分组的最大值,min表示每个分组的最小值,mean表示每个分组的平均值。 根据上面的结果,我们可以得出以下结论: - 缸数为4的汽车中,化油器数为1的有1辆,马力最小为52,平均油耗为26; - 缸数为4的汽车中,化油器数为2的有5辆,马力最大为93,最小为65,平均油耗为25.9; - 缸数为4的汽车中,化油器数为4的有2辆,马力最大为113,最小为91,平均油耗为21.5; - 缸数为6的汽车中,化油器数为1的有2辆,马力最大为110,最小为105,平均油耗为19.75; - 缸数为6的汽车中,化油器数为4的有1辆,马力为175,平均油耗为19.7; - 缸数为8的汽车中,化油器数为2的有2辆,马力最大为335,最小为150,平均油耗为15.4; - 缸数为8的汽车中,化油器数为3的有3辆,马力最大为264,最小为175,平均油耗为15.05; - 缸数为8的汽车中,化油器数为4的有8辆,马力最大为245,最小为150,平均油耗为11.5。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值