全国建设工程信息网站,seo在线优化工具 si,任意做别的公司网站销售产品违法吗,企业网d1netjavaScript实现回文数、水仙花数判断和输出斐波那契数列发布时间#xff1a;2020-07-22 01:15:37来源#xff1a;51CTO阅读#xff1a;422作者#xff1a;Cynthia_xie// 判断一个数是不是回文数// 方法一#xff1a;先将数字转换成字符串#xff0c;然后依次判断第一个和…javaScript实现回文数、水仙花数判断和输出斐波那契数列发布时间2020-07-22 01:15:37来源51CTO阅读422作者Cynthia_xie// 判断一个数是不是回文数// 方法一先将数字转换成字符串然后依次判断第一个和最后一个数字第二个和倒数第二个数字...是否相等function PalindromeNumber1(num){var str num.toString();var flag true;var len str.length;for(var i 0; 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 不是回文数// 方法二方法一的另一种写法function PalindromeNumber2(num){var str num.toString();var flag true;var begin 0, end str.length - 1;while( begin 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 不是回文数// 方法三: 将判断的数倒置然后判断前后两个数是否相等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 i0; iresult Math.pow(str.charAt(i), len);}if(result num){console.log(num 是水仙花数);}else{console.log(num 不是水仙花数);}}NarcissusNumber(153);// 斐波那契数列: 输出前n个数/*斐波那契数列1、1、2、3、5、8、13、21、34、……函数使用公式f[n]f[n-1]f[n-2]依次递归计算递归结束条件是f[1]1f[2]1。*/// 递归: 求第n个斐波那契数 ( 方法一 )function fb1(n){if( n1 || n 2){return 1;}return fb1(n-1) fb1(n-2);}// 输出前n个斐波那契数function Fibonacci1(num){console.log(1);for(var i2; i num; i){console.log(fb1(i));}}Fibonacci1(5);// 非递归: 求第n个斐波那契数 ( 方法二 )function fb2(n){var a 1, b 1, result1;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 i1; 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 result[i] result[i-1] result[i-2];}return result[n-1];}// 输出前n个斐波那契数function Fibonacci3(num){console.log(1);for(var i1; i num; i){console.log(fb3(i));}}Fibonacci3(5);