一个js函数算出任意位数的水仙花数
一个算出任意位数的水仙花数的函数如下:
不过百度上说。。
不过不管了,要的就是一式多用的功能就行了。
推导过程如下:
通常我们求三位数的水仙花是这么算的
for(var i = 100; i < 1000; i++){
//百位
var a = Math.floor(i / 100);
// 十位
var b = Math.floor((i - a * 100)/10);
// 个位
var c = i % 10;
if(Math.pow(a,3) + Math.pow(b,3) + Math.pow(c,3) === i){
console.log(i+'是一个水仙花数');
}
}
这样的做法似乎没有什么规律,那就先求个位,再求十位,百位
于是就改成了这样(把循环和累加省掉了)
//个位
ge = num%10;
// 十位
shi = Math.floor(num / 10) %10;
// 百位
bai = Math.floor(num / 100);
也就等价于
//个位
ge = num%10;
// 十位
shi = Math.floor(num / 10) %10;
// 百位,百位/100后余10即等于本身,因为除了100且化为整数之后只剩个位数,个位对10取余依旧是自己
bai = Math.floor(num / 10/10) % 10;
也就是一直在对10取余之后除以10再对10取余,
而取余出来时的数为我们所要的个、十、百。。等位数
除以十则是一直在循环除以同一个数
那自然取余的数用数组存取,
而这个用来除以10的数则是循环累除,直至小于1
于是得到
var arr =[];
/*更改num确定取值范围*/
for(var num = 100; num <= 9999;num++){
/*多位数版本*/
var i = 0;
/*设置一个数用来存储变量num*/
var suan = num; do{
/*取出个位*/
arr[i] = suan%10;
/*去掉“个位”*/
suan = Math.floor(suan/ 10) ;
i++;
}while(suan >= 1 ) var sum = 0;
for(var i=0;i<arr.length;i++)
{
/*累加各个数字的n次幂(n为数字的位数,如100为3,1000为4)*/
sum+= Math.pow(arr[i],arr.length);
}
if(sum == num){
console.log(num);
}
}
一个js函数算出任意位数的水仙花数的更多相关文章
- 打印出三位数的水仙花数Python
水仙花数计算 ...
- 【C语言】创建一个函数,判断某一正整数是否为水仙花数,并调用这个函数找出1000以内所有水仙花数
#include <stdio.h> int fun(int x) { int a, b, c; a = x / ; b = x % / ; c = x % ; if (x == a * ...
- 给定一个英文字符串,请编写一个PHP函数找出这个字符串中首先出现三次的那个英文字符(需要区分大小写),并返回
给定一个英文字符串,请编写一个PHP函数找出这个字符串中首先出现三次的那个英文字符(需要区分大小写),并返回 //统计字符串中出现的字符的出现次数 public function strNum(){ ...
- python 求3到8位数的水仙花数Pycharm实现
#-*- coding: utf-8-*-import timeimport math#获取3位数的水仙花数start1 = time.time()start = time.time() number ...
- 【原创】贡献一个JS的弹出框代码...
一.前言 最近在做一个项目,自己感觉系统自带的alert()方法的弹出框实在是不堪入目,所以在网上找了一些资料,然后自己加工了一下,做出了自己的一个js弹出框,在这里贡献出来,希望对你有帮助. 二.开 ...
- 用Java编程计算出所有的"水仙花数"
题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个 "水仙花数 ",因 ...
- 【C语言】(for循环嵌套)找出1000以内的水仙花数
什么是水仙花数? 水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153). 分析: 根据定义可知: a*a*a+b*b*b+c*c*c ...
- 【C语言】找出1000以内的水仙花数
什么是水仙花数? 水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153). 代码1: #include<stdio.h> ...
- 在一个页面重复使用一个js函数的方法
给每个拥有相同行为的问题DOM节点一个相同的class类,如question,同时给不同的问题一个不同的标识ID如 id="question1" id="question ...
随机推荐
- tomcat&servlet初记
tomcat&servlet初记 1. web相关概念 2. web服务器软件的学习:tomcat 3. servlet入门学习 web相关概念 1,软件架构 1,cs架构:客户端/服务器端 ...
- 完全依赖QML实现播放器
前言 一直听闻QML无比强大好用,工作中需要扣一个同时播放视频的Demo,所以就趁这个机会研究了一下. 效果图和源码 源码仓库 主要设计 主页面QML import QtQuick 2.12 impo ...
- 奉上简单的.Net后端开发模板
假定一个场景,开始做开发的你,领导走到你的面前说道:"小伙子,看了简历和最近的工作表现,很不错,现在交给一个任务,开发一个简单的CMS后端接口吧,前端有人配合你",当时你内心读白: ...
- @开发者,快来申请你的工业级NXP内核物联网开发板
米尔工业级NXP开发板试用活动(MYD-C8MMX) 不久前 米尔推出了新一代高性价比核心板之王 MYC-C8MMX核心板及开发板 获得众多客户热烈反馈 这一次 我们给各位带来福利 i.MX8M mi ...
- C/C++ 手动开O2
手动O2比赛不能用,平时玩玩就好 #pragma GCC optimize (2) #pragma G++ optimize (2)
- JAVA基础之IO流知识总结
一.IO流体系图 IO常用的几个流: [I/O流原理作用] Input/Output:输入输出机制 输入机制:允许java程序获取外部设备的数据(磁盘,光盘,网络等). 输出机制:保留java程序中的 ...
- [2020.03]Unity ML-Agents v0.15.0 环境部署与试运行
一.ML-Agents简介 近期在学习Unity中的机器学习插件ML-Agents,做一些记录,用以简单记录或交流学习. 先简单说一下机器学习使用的环境场景:高视觉复杂度(Visual Complex ...
- W3C的盒子模型和IE的盒子模型
盒子模型分为两种:W3C盒子模型(标准盒子模型)和IE盒子模型 盒子模型组成:content+padding+border+margin 标准盒子模型的width就是content 而IE盒子模型的w ...
- swoole 异步非堵塞 server/端 client/端 代码,已经测试完毕。贴代码
服务器环境 centos7.0 swoole4.3 php7.2 pcre4.8 nginx1.8 php-fpm server.php <?php class Server { pr ...
- [pdo_mysql.lo] Error 1 或者 [php_mysql.lo] Error 1
make: *** [pdo_mysql.lo] Error 1 make: *** [php_mysql.lo] Error 1 这是因为这是因为在编译时需要 MySQL 的头的文件.而它按默认搜索 ...