阿里数定义:对一个整数每一位求平方之和,求出数字 a,再对 a 进行上述操作,最终和等于 1 的数
比如:数字 82 就是一个 阿里数:
8^2 + 2^2 = 68
6^2 + 8^2 = 100
1^2 + 0^2 + 0^2 = 1
代码展示:
let cont = 0 //计数器let str //记录原始值function total(num) {//这个判断用来记录第一次调用这个函数时得num值 后面采用递归调用if (cont === 0) {str = num}cont++//把数字拆分成数组,方便做计算let a = num.toString().split('')//判断num值大于等于100if (num >= 100) {if (a[0] * a[0] + a[1] * a[1] + a[2] * a[2] === 1) {return console.log(str)} else if (a[0] * a[0] + a[1] * a[1] + a[2] * a[2] === 10) {total(a[0] * a[0] + a[1] * a[1] + a[2] * a[2])}}if (num < 100 && num >= 10) {if (a[0] * a[0] + a[1] * a[1] === 1) {return console.log(str)}total(a[0] * a[0] + a[1] * a[1])}if (num < 10) {if (num * num === 1) {return console.log(str)}if (num * num > 10) {total(num * num)}}return num}for (let i = 0; i < 100; i++) {cont = 0total(i)}
