刷题100天—_P1047_二进制( 二进制)—day37

举报
神的孩子在歌唱 发表于 2021/10/18 20:47:24 2021/10/18
【摘要】 前言:作者:神的孩子在歌唱大家好,我叫运智 描述二进制是计算机学科中广泛应用的一种数制, 用0和1两个数码来表示数字, 进位规则为"逢二进一"将一个十进制数字转换为二进制数字的方法如下:用2整除十进制整数, 可以得到一个商和余数, 再用2去除商, 又会得到一个商和余数, 如此进行, 直到商为小于1时为止, 然后把先得到的余数作为二进制的低位有效位, 后得到的余数作为二进制的高位有效位, 依次...

前言:

作者:神的孩子在歌唱

大家好,我叫运智

image-20210913135445380

描述

二进制是计算机学科中广泛应用的一种数制, 用0和1两个数码来表示数字, 进位规则为"逢二进一"

将一个十进制数字转换为二进制数字的方法如下:

用2整除十进制整数, 可以得到一个商和余数, 再用2去除商, 又会得到一个商和余数, 如此进行, 直到商为小于1时为止, 然后把先得到的余数作为二进制的低位有效位, 后得到的余数作为二进制的高位有效位, 依次排列起来

以13举例, 十进制13 = 二进制1101

13 ÷ 2 = 6 … 1

6 ÷ 2 = 3 … 0

3 ÷ 2 = 1 … 1

1 ÷ 2 = 0 … 1

给你一个十进制下的非负整数, 不包含前导零, 你需要统计出这个数字在二进制中数码"1"出现的次数

格式

输入格式

输入仅包含一个非负十进制整数n (0≤n≤1015), 含义如题面所述

输出格式

输出一个非负整数, 含义如题面所述

样例

输入样例
13
输出样例
3

限制

时间限制: 1000 ms

内存限制: 65536 KB

package 百度算法;

import java.util.Scanner;

public class _P1047_二进制 {
	public static void main(String args[]) {
		Scanner st=new Scanner(System.in);
		Long i=st.nextLong();
		int sum=0;
		while(i>0) {
			
			if (i%2==1) {
				sum++;
			}
			i=i>>1;
		}
		System.out.print(sum);
	}
}

本人csdn博客:https://blog.csdn.net/weixin_46654114

转载说明:跟我说明,务必注明来源,附带本人博客连接。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。