码迷,mamicode.com
首页 > 其他好文 > 详细

计算 num 的 n 次幂、n 的阶乘、斐波那契数列、字符串的字节长度、去除字符串中的重复字符

时间:2020-02-08 19:31:22      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:var   list   over   fun   ||   for   while   nbsp   一个   

  1 //计算 num 的 n 次幂
  2 function numPow(num, n) {
  3     if (n == 1) {
  4         return num;
  5     }
  6     return num * numPow(num, n - 1);
  7 }
  8 
  9 //计算 n 的阶乘
 10 function nFactorial(n) {
 11     if (n == 1) {
 12         return 1;
 13     }
 14     return n * nFactorial(n - 1);
 15 }
 16 
 17 //斐波那契数列,输出第n项
 18 function nFibonacci(n) {
 19     if (n == 1 || n == 2) {
 20         return 1;
 21     } else if (n > 2) {
 22         var prevOne = 1,
 23             prevTwo = 1,
 24             temp = n,
 25             res = 0;
 26         while (temp - 2) {
 27             res = prevOne + prevTwo;
 28             prevOne = prevTwo;
 29             prevTwo = res;
 30             temp--;
 31         }
 32         return res;
 33     }
 34 }
 35 
 36 //斐波那契数列,输出 n 项
 37 function listFibonacci(n) {
 38     var fib = ‘‘;
 39     if (n == 1) {
 40         return 1;
 41     } else if (n == 2) {
 42         fib = ‘1,1‘
 43         return fib;
 44     } else if (n > 2) {
 45         var prevOne = 1,
 46             prevTwo = 1,
 47             temp = n,
 48             res = 0,
 49             fib = ‘1,1‘;
 50         while (temp - 2) {
 51             res = prevOne + prevTwo;
 52             fib += ‘,‘ + res;
 53             prevOne = prevTwo;
 54             prevTwo = res;
 55             temp--;
 56         }
 57         return fib;
 58     }
 59 }
 60 //斐波那契数列,输出 n 项的和
 61 function sumFibonacci(n) {
 62     if (n == 1) {
 63         return 1;
 64     } else if (n == 2) {
 65         return 2;
 66     } else if (n > 2) {
 67         var prevOne = 1,
 68             prevTwo = 1,
 69             res = 0,
 70             sum = 2;
 71         while (n - 2) {
 72             res = prevOne + prevTwo;
 73             sum += res;
 74             prevOne = prevTwo;
 75             prevTwo = res;
 76             n--;
 77         }
 78         return sum;
 79     }
 80 }
 81 
 82 //求字符串的字节长度,其中英文和数字是一个字节,中文为两个字节
 83 function strByteLen(str) {
 84     var strCodeLen = 0,
 85         strLen = str.length;
 86     for (var i = 0; i < strLen; i++) {
 87         if (str.charCodeAt(i) <= 255) {
 88             strCodeLen++;
 89         } else {
 90             strCodeLen += 2;
 91         }
 92     }
 93     return strCodeLen;
 94 }
 95 
 96 
 97 //去除字符串中的重复字符
 98 function removeRepetition(str) {
 99     var result = [],
100         strLen = str.length,
101         tmp = 0;
102     result.push(str[0]);
103     for (var i = 1; i < strLen; i++) {
104         for (var j = 0; j < result.length; j++) {
105             if (str[i] == result[j]) {
106                 break;
107             } else {
108                 tmp++;
109             }
110         }
111         if (tmp == result.length) {
112             result.push(str[i]);
113         }
114         tmp = 0;
115     }
116     return result.join(‘‘);
117 }

 

计算 num 的 n 次幂、n 的阶乘、斐波那契数列、字符串的字节长度、去除字符串中的重复字符

标签:var   list   over   fun   ||   for   while   nbsp   一个   

原文地址:https://www.cnblogs.com/hjysunshine/p/12284436.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!