JZ15 二进制中1的个数
描述:
输入一个整数 n ,输出该数32位二进制表示中1的个数。其中负数用补码表示。
数据范围:- 2^{31} <= n <= 2^{31}-1−231<=n<=231−1
即范围为:-2147483648<= n <= 2147483647−2147483648<=n<=2147483647
示例:
输入:-1
返回值:32
说明:负数使用补码表示 ,-1的32位二进制表示为1111 1111 1111 1111 1111 1111 1111 1111,其中32个1
function NumberOf1(n)
{
// write code here
let result = 0
while(n!=0){
n = n&(n-1) //位运算
result++
}
return result
}
module.exports = {
NumberOf1 : NumberOf1
};
JZ17 打印从1到最大的n位数
描述
输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。
1. 用返回一个整数列表来代替打印
2. n 为正整数,0 < n <= 5
示例:
输入:1
返回值:[1,2,3,4,5,6,7,8,9]
最大值是10的n次方减一
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param n int整型 最大位数
* @return int整型一维数组
*/
function printNumbers( n ) {
// write code here
// n代表位数
let numMax = Math.pow(10,n)-1
let arr=[]
for(let i=1;i<=numMax;i++){
arr.push(i)
}
return arr
}
module.exports = {
printNumbers : printNumbers
};