1、写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
var str = 'ABC123'
function trans(str) {
var len = str.length, code, resArr = [], sum = 0
for (var i = 0; i < len; i++) {
code = (str.charCodeAt(i))
if (code > 48 && code < 58) {
resArr.push((code - 48) * Math.pow(16, len - i - 1))
} else if (code >= 65 && code <= 90) {
resArr.push((code - 55) * Math.pow(16, len - i - 1))
} else if (code >= 97 && code <= 122) {
resArr.push((code - 87) * Math.pow(16, len - i - 1))
}
}
sum = resArr.reduce((pre, cur) => {
return pre + cur
})
return sum
}
console.log(trans(str))
2、输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5)
function getFirstPrime(num) {
for (var i = 2; i <= num; i++) {
if (num % i === 0) {
return i
}
}
return false
}
function getPrimeList(number){
var resArr = []
while (getFirstPrime(number)) {
var zhiYinzi = getFirstPrime(number)
resArr.push(zhiYinzi)
number = number / zhiYinzi
}
return resArr
}
console.log(getPrimeList(20))
3、