js-2种方法输出1000以内所有的“水仙花数”--小技巧

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			//输出所有的“水仙花数”
			window.onload = function() {
				// var num = 153;
				// console.log(num%10); //3  拿到个位数
				// console.log(parseInt((num/10)%10));//5  十位
				// console.log(parseInt(num/100));//1  百位
				
				//第一种方法拿到每一位计算
				var g, s, b, sum, num = [],j = 0;
				for (var i = 100; i < 1000; i++) {
					g = i % 10;
					s = parseInt((i / 10) % 10);
                   // s = parseInt((i % 100) / 10); //这样也可以取到十位
					b = parseInt(i / 100);
					// console.log(g,s,b);
					sum = Math.pow(g, 3) + Math.pow(s, 3) + Math.pow(b, 3);
					// console.log(sum);
					if (i == sum) {
						num[j] = sum;
						console.log(sum);
						j++;
					}
				}
				// 显示
				document.write("水仙花数都有:");
				for (var i = 0; i < num.length; i++) {
					document.write(num[i] + "、");
				}
				
				//第二种方法,用字符串方法实现
				var str,gg, ss, bb, sum1, num1 = [],k = 0;
				for(var n = 100; n < 1000; n++){
					str = n.toString();//转字符
					// console.log(str);
					bb = Number(str.charAt(0));//百位
					ss = Number(str.charAt(1));//十位
					gg = Number(str.charAt(2));//个位
					
					sum1 = Math.pow(gg, 3) + Math.pow(ss, 3) + Math.pow(bb, 3);
					if(sum1 === n){
						num1[j] = sum1;
						j++;
						document.write('<br />'+sum1+'<br />');
					}
				}
				
			}
		</script>
	</head>
	<body>
	</body>
</html>

posted @ 2020-03-19 21:40  JackieDYH  阅读(15)  评论(0编辑  收藏  举报  来源