几个js函数
1 <!DOCTYPE html>
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5 <title>函数</title>
6 </head>
7 <body>
8 <script type="text/javascript">
9 //使用 for 循环、while 循环和递归写出 3 个函数来计算给定数列的总和。
10 var a1 = [1,2,3,4,5,6,2,3,4,5,6,3666666];
11 function sum(m){
12 var len = m.length;
13 var result = 0;
14 for(var i=0;i<len;i++){
15 result = result+m[i];
16 }
17 alert(‘使用 for 循环弹出的结果‘+result);
18 }
19 sum(a1);
20 function sum1(n){
21 var len = n.length;
22 var result = 0;
23 var i = 0;
24 while(i<len){
25 result = result+n[i];
26 i++;
27 };
28 alert(‘使用 while弹出的结果‘+result);
29 }
30 sum1(a1);
31 function sum2(p,n){
32 if(n<0){
33 return 0;
34 }else{
35 return p[n]+arguments.callee(p,n-1);
36 }
37 }
38 alert(‘使用递归弹出的结果‘+sum2(a1,a1.length-1));
39 //编写一个交错合并列表元素的函数。例如:给定的两个列表为[a,B,C]和[1,2,3],函数返回[a,1,B,2,C,3]。
40 var a2 = [‘a‘,‘c‘,‘e‘,‘g‘,‘i‘];
41 var a3 = [‘b‘,‘d‘,‘f‘,‘h‘,‘j‘];
42 function add(m,n){
43 var a4 = [];
44 if (m.length>0&&n.length>0) {
45 for (var i=0; i<m.length;i++) {
46 a4.push(m[i]);
47 a4.push(n[i]);
48 };
49 return a4;
50 }else if(m.length=0){
51 return n;
52 }else if (n.length=0){
53 return m;
54 };
55 }
56 alert(add(a2,a3));
57 //编写一个计算前 100 位斐波那契数的函数。根据定义,斐波那契序列的前两位数字是 0 和1,随后的每个数字是前两个数字的和。
例如,前 10 位斐波那契数为:0,1,1,2,3,5,8,13,21,34。
58 function fei(num){
59 var result = [0,1];
60 if(num>3){
61 for (var i=2;i<num;i++) {
62 result[i] = result[i-1]+result[i-2];
63 };
64 return result;
65 }else{
66 return result;
67 };
68 }
69 alert(‘前 100 位斐波那契数以此为:‘+fei(100));
70 //编写一个能将给定非负整数列表中的数字排列成最大数字的函数。例如,给定[50,2,1,9],最大数字为 95021。
71 var a5 = [574,2,3,9,7];
72 function list(arr){
73 var arr1 = [];
74 for(var i=0;i<arr.length;i++){
75 arr1.push(arr[i].toString());
76 }
77 function compare(str1, str2){
78 if(str1 < str2){
79 return 1;
80 }else if(str1 > str2){
81 return -1;
82 }else{
83 return 0;
84 }
85 }
86 alert(‘所能组成的最大数字是:‘+arr1.sort(compare).join(‘‘));
87 }
88 list(a5);
89
90 // 编写一个在1,2,…,9(顺序不能变)数字之间插入+或-或什么都不插入,使得计算结果总是 100 的程序,并输出所有的可能性。
例如:1 + 2 + 34 – 5 + 67 – 8 + 9 = 100。
91 var str = "123456789";
92 var ways = [];
93 function exec(str, pre) {
94 var a = str.split("");
95 if( str.length === 2 ){
96 ways.push( pre + a.join("+") );
97 ways.push( pre + a.join("-") );
98 ways.push( pre + str );
99 }else{
100 var c = str.charAt(0),
101 s = str.substring(1);
102 exec( s, pre + c + "+" );
103 exec( s, pre + c + "-" );
104 exec( s, pre + c );
105 }
106 }
107 exec( str, "" );
108 for (var i = 0; i < ways.length; i++) {
109 if( eval( ways[i] ) === 100 ){
110 alert( ways[i] + " = 100" );
111 }
112 };
113 </script>
114 </body>
115 </html>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。