简单利用JS来找出“水仙花数”
前言
学习编程语言的过程中或多或少都会接触到一些利用代码来计算的实战题目,本文就来介绍一个简单的实例“水仙花数”,我相信很多编程语言学习过程中都会学习这个实例
解决办法
什么是“水仙花数”?
水仙花数是指一个 3 位数,它的每一位上的数字的立方和等于这个数字的本身,比如说“153”这个数字,分解开来就是1³+5³+3³,它的和就是153也就是本身。
如何实现?
首先我们要确定,水仙花数是一个三位数,所以他的范围就是100≤∂<1000
先定义一个空的字符串,让其来存储我们的水仙花数
var str = "";
创建一个For循环
for( ; ; ){
}
给For循环定义一个初始值,判断条件以及一个自增
for (var i = 100; i < 1000; i++){
}
初始值i=100是因为水仙花数为三位数,最小三位数为100,初始值便设置100
循环条件i < 1000是因为最大三位数为999,需要小鱼这个数,当然≤999也行
最后的i++为自增
总体来说这段代码的意思就是,先定义一个循环初始值i为100,而i++的意思就是当i的值小于1000的时候,每次For循环一次以后,让i这个数字自动+1,然后返回True继续循环,当i的值达到判断条件限定值的时候返回False,循环停止。
提取范围内数字,先上代码,然后一点点解释
var a = i % 10;
// 提取个位数字
var b = (i / 10) % 10
// 提取十位数
b = parseInt(b);
// 舍弃小数部分
var c = i / 100;
// 提取百位数
c = parseInt(c)
// 舍弃小数部分
1. var a = i % 10;
定义a为个位上的数字并取我们上方循环中循环的数i进行取值,将i%10就可取原数的个位数字
2. var b = ( i / 10 ) % 10
定义b为十位上的数字,将i的值先除以10,会得到一个数,再取这个数个位及以后的数字,如果是小数就是x.xxxxxx
最后利用parseInt函数来进行取整,也就是舍掉小数部分内容
3. var c = i / 100;
定义c为百位上的数字,将i的值除以100得到一个仅有个位的数字,并且非整数的话会带有余数
我们依旧利用parseInt函数进行舍弃小数取整,得到的就是百位上的数字
如何判断是否为水仙花数?依旧先上代码.
if (i == (a*a*a+b*b*b+c*c*c))
{
str = str + i + "、";
}
最简单的就是利用if来进行判断
在if中对i这个值进行判断,将个位数取立方,十位数取立方,百位数取立方将他们相加若得数等于i本身,则为水仙花数
最后用到我们开头定义的空字符串让他存储
最后输出到浏览器即可
document.write("水仙花数:" + str)';
整体代码
var str = "";
for (var i = 100; i < 1000; i++){
var a = i % 10;
// 提取个位数字
var b = (i / 10) % 10
// 提取十位数
b = parseInt(b);
// 舍弃小数部分
var c = i / 100;
// 提取百位数
c = parseInt(c)
// 舍弃小数部分
if (i == (a*a*a+b*b*b+c*c*c))
{
str = str + i + "、";
}
}
document.write("水仙花数:" + str)';
图片
本章名称:简单利用JS来找出“水仙花数”
本章链接:https://www.9wor.com/145.html
本站名称:酒窝博客
本站地址:www.9wor.com
本站部分内容来源于网络,仅供大家参考学习,若侵犯到了您的合法权益,请点击此处联系站长处理。
本站资源均存储至云盘,若有失效请联系处理,建议成为注册用户使用我们的CDN直连下载。
为了本站的稳定发展,希望贵站若搬运本站资源,请注明一下原站地址,真的谢谢你们了!

黄衣哥