前端js水仙花数回文数算法
1: 打印出所有"水仙花数",
所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身;例如:153是一个水仙花数,因为153=1^3+5^3+3^3;
思路:把给出的三位数的个位、十位、百位分别拆分,并求其立方和(设为sum),若sum与给出的三位数相等, 三位数为“水仙花数”,反之,则不是;
1 for (var i = 100; i < 1000; i++) { 2 var a = parseInt(i / 100)//百位 3 var b = parseInt((i - a * 100) / 10) //十位 4 var c = parseInt(i - a * 100 - b * 10)// 个位 5 var sum = a * a * a + b * b * b + c * c * c 6 if (i == sum) { 7 console.log(sum);//153、370、371、407 8 } 9 }
2:求出所有的回文数的个数。
所谓回文数,是指一个5位数,并且它的万位和个位相等,千位和十位相等,如12321,12321就是回文数;
思路:同上
1 var result = [] 2 for (var i = 10000; i <= 99999; i++) { 3 var a = parseInt(i / 10000) //万位 4 var b = parseInt((i - a * 10000) / 1000) //千位 5 var c = parseInt((i - a * 10000 - b * 1000) / 100)// 百 6 var d = parseInt((i - a * 10000 - b * 1000 - c * 100) / 10) // 十 7 var d = i - a * 10000 - b * 1000 - c * 100 - d * 10 //个 8 if (a == d && b == d) { 9 result.push(i) 10 } 11 12 } 13 console.log(result);
结果:打印结果共有900个,如下图所示(也可以复制代码自行查看)

浙公网安备 33010602011771号