华为OJ训练之0009-161231-统计二进制数字中1的个数(求int型数据在内存中存储时1的个数)
2017-03-19 16:55
232 查看
题目
==============================================================请实现如下接口
public static int findNumberOf1(intnum)
{
/* 请实现 */
return 0;
}譬如:输入5 ,5的二进制为101,输出2
涉及知识点:
位运算
知识点 位运算
运行时间限制 10M
内存限制 128
输入
输入一个整数
输出
计算整数二进制中1的个数
样例输入 5
样例输出 2
===============================================================
一次通过 得分100
考察位运算
也可使用 num=num&(num-1)
需要考虑负数的问题 以及数据位数的问题
此题同样用于(求int型数据在内存中存储时1的个数)
这道题
一次通过100分
==============================================================
import java.util.Scanner; //请实现如下接口 // public static int findNumberOf1(intnum) // { // /* 请实现 */ // return 0; // }譬如:输入5 ,5的二进制为101,输出2 // //涉及知识点: // //位运算 public class oj009 { public int findNumberOf1(int num) { int count=0; int a=1; while(a!=0) { if((num&a)!=0) {count++;} //判断a中1所在的位置对应的num中的数字是否为1 是则计数 a=a<<1; //a右移一位 } return count; } public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int a=scanner.nextInt(); int n=new oj009().findNumberOf1(a); System.out.println(n); } }
相关文章推荐
- 华为oj 字符串个数统计&&数字颠倒&&字符串翻转&&字符逆序&&求int型数据在内存中存储时1的个数
- 华为 OJ 初级 输入一个int型数据,计算出该int型数据在内存中存储时1的个数。
- 【华为OJ】【041-求int型数据在内存中存储时1的个数】
- 华为OJ——求int型数据在内存中存储时1的个数
- 华为OJ 初级:求int型数据在内存中存储时1的个数
- 华为OJ——求int型数据在内存中存储时1的个数
- 【华为OJ】【015-求int型数据在内存中存储时1的个数】
- 华为oj初级 求int型数据在内存中存储时1的个数
- 华为OJ 输入一个int型数据,计算出该int型数据在内存中存储时1的个数
- 【华为 OJ 】求int型数据在内存中存储时1的个数
- 【华为OJ】求int型数据在内存中存储时1的个数
- 【华为OJ】求int型数据在内存中存储时1的个数
- 牛客网-华为机试在线训练-1.求int型数据在内存中存储时1的个数
- 华为机试题--13.求int型数据在内存中存储时1的个数
- OJ------求int型数据在内存中存储时1的个数(二进制数中1的个数)
- 华为机试:求int型数据在内存中存储时1的个数、 取近似值
- 【oj1947】 求int型数据在内存中存储时1的个数
- 华为训练题:初级——求int型数据在内存中存储时1的个数(位运算)
- 华为OJ:求int型正整数在内存中存储时1的个数
- 华为机试---求int型数据在内存中存储时1的个数