水仙花数
封装一个函数, 判断一个数字是否为 水仙花数
水仙花数:一个四位数字, 各个位置的四次方和!!! 四次方和!!! 四次方和 如果等于自身, 那么就是水仙花数
` function fn(num) {
var qianW = parseInt(num / 1000) //拿到千位数
var baiW = parseInt(num / 100) % 10 //拿到百位数
var shiW = parseInt(num / 10) % 10 //拿到十位数
var geW = num % 10 //拿到个位数
var sum = qianW ** 4 + baiW ** 4 + shiW ** 4 + geW ** 4 //对数字进行重构
if (sum === num) { //对比两个数字
return true //输出真
} else {
return false //输出假
}
}
var str = fn(1634) //调用函数验证1634
console.log(str) // true
var str1 = fn(1234) //调用函数验证1234
console.log(str1) // false`
数字加密
封装一个函数, 对一个四位数字加密
加密规则:
1. 每一位上的数字 +5 然后使用 10的余数替代
2. 一三交换位置, 二四交换位置
`function fn(num) {
// 1. 先拿到 四位数字的各个位置上的 值
var qianW = parseInt(num / 1000)
var baiW = parseInt(num / 100) % 10
var shiW = parseInt(num / 10) % 10
var geW = num % 10
// 2. 将这四个值, 加 5 后, 替换原本的值
qianW += 5
baiW += 5
shiW += 5
geW += 5
// 3. 将 加5后 的值, 使用 10 的余数 去替代
qianW %= 10
baiW %= 10
shiW %= 10
geW %= 10
//交换各个数字的位置
var numT = '' + shiW + geW + qianW + baiW
// 最后一步, 将加密后的数字, 返回出去
return numT
} else {
console.log('传入的数字, 不是 四位数字', num)
}
}
var sum = fn(1234)
console.log('加密后的数字为: ', sum)
var sum1 = fn(5655)
console.log('加密后的数字为: ', sum1)`
最大公约数
约数:整数 x 除以 整数 y (y !== 0), 余数为0, 此时 我们说 y 是 x 的约数
`function fn1(a, b) {
var min = a > b ? b : a // 如果 a > b 条件成立, 说明b的值小, 所以返回 b, 否则, 说明a的值小, 那么返回 a
for (var i = min; i >= 1; i--) {
if (a % i === 0 && b % i === 0) {
return i // 返回 a 和 b 的最大公约数
}
}
}
var sum = fn1(12, 8)
console.log(sum) // 4
var sum1 = fn1(20, 10)
console.log(sum1) // 10
var sum2 = fn1(20, 40)
console.log(sum2) // 20`
最小公倍数
如何计算最小公倍数:
一个数学等式:
两数的乘积 === 两数的最大公约数 * 两数的最小公倍数
a * b === a和b的最大公约数 * a和b的最小公倍数
根据数学等式, 做一个变换
a * b / a和b的最大公约数 === a和b的最小公倍数
`function fn2(a, b) {
return a * b / fn1(a, b)
}
var sum = fn2(8, 12)
console.log(sum) // 这里会输出 数字8和数字12的最小公倍数 24
var sum1 = fn2(3, 9)
console.log(sum1) // 9`