javaScript实现回文数、水仙花数判断和输出斐波那契数列
来源:互联网 发布:手机桌面控制软件 编辑:程序博客网 时间:2024/05/01 10:17
javaScript实现回文数、水仙花数判断和输出斐波那契数列
一、判断回文数
回文数: 设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。
//方法1: 用正则(少于80个字符的函数实现) function isPalindrome(str) { str = str.replace(/\W/g, '').toLowerCase(); return (str == str.split('').reverse().join('')); } console.log(isPalindrome("level")); // logs 'true' console.log(isPalindrome("levels")); // logs 'false' console.log(isPalindrome("A car, a man, a maraca")); // logs 'true' // 方法2:先将数字转换成字符串,然后依次判断第一个和最后一个数字,第二个和倒数第二个数字...是否相等 function PalindromeNumber1(num){ var str = num.toString(); var flag = true; var len = str.length; for(var i = 0; i < (len - 1) / 2; i++){ if( str.charAt(i) != str.charAt(len-i-1) ){ flag = false; break; } } if(flag){ console.log(num + " 是回文数"); }else{ console.log(num + " 不是回文数"); } } PalindromeNumber1(123456321); // 123456321不是回文数 // 方法3:方法一的另一种写法 function PalindromeNumber2(num){ var str = num.toString(); var flag = true; var begin = 0, end = str.length - 1; while( begin < end ){ if(str.charAt(begin) == str.charAt(end)){ begin ++; end --; }else{ flag = false; break; } } if(flag){ console.log(num + " 是回文数"); }else{ console.log(num + " 不是回文数"); } } PalindromeNumber2(123456321); // 123456321不是回文数 // 方法4: 将判断的数倒置,然后判断前后两个数是否相等 function InvertedNumber(num){ var nNum= 0; while( num != 0){ nNum *= 10; nNum = nNum + (nNum % 10); num = Math.floor( num / 10 ); } return nNum; } function PalindromeNumber3(num){ var nNum = InvertedNumber(num); // 将一个数逆序 if( nNum == num){ // 判断逆置后的数是否和原来的数相同 console.log(num + " 是回文数"); }else{ console.log(num + " 不是回文数"); } } PalindromeNumber3(123456321); // 123456321不是回文数
二、判断水仙花数
水仙花数: 水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。
// 将数组转换成字符串,然后分别加上每个位置上的数n次幂 function NarcissusNumber(num){ var str = num.toString(); var len = str.length; var result = 0; for(var i=0; i<len; i++){ result += Math.pow(str.charAt(i), len); } if(result == num){ console.log(num + " 是水仙花数"); }else{ console.log(num + " 不是水仙花数"); } } NarcissusNumber(153);
三、斐波那契数列
斐波那契数列:指的是这样一个数列1、1、2、3、5、8、13、21、34、…… 这个数列从第3项开始,每一项都等于前两项之和。
// 递归: 求第n个斐波那契数 ( 方法一 ) function fb1(n){ if( n==1 || n== 2){ return 1; } return fb1(n-1) + fb1(n-2); } // 输出前n个斐波那契数 function Fibonacci1(num){ console.log(1); for(var i=2; i <= num; i++){ console.log(fb1(i)); } } Fibonacci1(5); // 非递归: 求第n个斐波那契数 ( 方法二 ) function fb2(n){ var a =1, b =1, result=1; for(var i =2; i<= n; i++){ result = a + b; a = b; b = result; } return result; } // 输出前n个斐波那契数 function Fibonacci2(num){ console.log(1); for(var i=1; i < num; i++){ console.log(fb2(i)); } } Fibonacci2(5); // 非递归:求第n个斐波那契数 ( 方法二 ) function fb3(n){ var result = [1,1]; if( n== 1 || n ==2){ return 1; } for(var i = 2; i < n; i++ ){ result[i] = result[i-1] + result[i-2]; } return result[n-1]; } // 输出前n个斐波那契数 function Fibonacci3(num){ console.log(1); for(var i=1; i <= num; i++){ console.log(fb3(i)); } } Fibonacci3(5);
阅读全文
0 0
- javaScript实现回文数、水仙花数判断和输出斐波那契数列
- 求水仙花数和回文的判断
- JavaScript实现九九乘法表,斐波拉契数列,水仙花数
- C语言实现判断素数,回文数,水仙花数,闰年
- JavaScript判断水仙花数
- 数学问题(1):杨辉三角、水仙花数、打印斐波那契数列
- Java实现判断素数和水仙花数
- javascript判断回文数
- 初学python:输出斐波那契数列,项数由键盘输入
- 关于斐波那契数的JavaScript实现
- (13)Fibonacci数--斐波那契数列
- Fibonacci数(斐波那契数列)
- 斐波那契数列与卡特兰数
- 斐波那契数(JAVA实现)--递归中的Fibonacci数列
- 以斐波那契数列实现黄金分割数的验证
- JAVA实现判断回文数
- JS 用JS实现判断水仙花数
- 斐波那契数--递归和非递归实现
- 基于光流的室外场景三维重建
- IntelliJ Idea 2017 注册码 免费激活方法
- Nginx快速搭建
- C
- matplotlib 颜色板
- javaScript实现回文数、水仙花数判断和输出斐波那契数列
- php 解决大流量网站访问量问题
- 有向图强联通分量uvalive4287
- 分享java编程题(网易笔试)
- Windows消息机制概述
- springmvc-ehcache集成缓存框架
- 两种根据数组中对象的某一个属性值对数组进行重新排序的方法
- Git常用命令
- new XSSFWorkbook(is); Package should contain a content type part [M1.13]