经典笔试题

 1 /*
 2 有人想知道,一年内一对兔子能繁殖多少对?于是就筑了一道围墙,把一对兔子关在里面。已知一对兔子每个月可以生一对小兔子,而一对兔子从出生后第3个月起每个月生一对小兔子。假如一年内没有发生死亡现象,那么,一对兔子一年内(12个月)能繁殖成多少对?
 3 兔子的规律为数列,1,1,2,3,5,8,13,21 后一项是前2项之和
 4   sum = n1+n2;
 5   n1 = n2;
 6   n2 = n1 + n2;
 7 */
 8 
 9 function getRabbitNum(month){    
10   var n1 = 1;    //第1个月的兔子对数
11   var n2 = 1; //第2个月的兔子对数
12   var sum = 0; //第n个月的兔子对数
13   for(var i = 3; i <= month; i++){
14   sum = n1 + n2;    //第一次循环时第3个月的兔子对数等于其前两月的兔子对数之和
15   n1 = n2; //将第2个月的对数赋值给第1个月以备下次循环时计算第4个月的兔子对数
16   n2 = sum;    //将第3个月的对数赋值给第2个月以备下次循环时计算第4个月的兔子对数
17   }
18   return sum;
19 }
20 document.write("<br/>12个月后的兔子对数是 "+getRabbitNum(12));

 

 1 /*
 2  已知字符串"a,b,c,cd,b,c,a,d"编程实现以下功能.
 3  统计每个字符出现的次数结果显示 a 2、b 1、c 2、d 1去掉重复的字符,
 4  使结果显示 abcd
 5 */
 6 
 7 var str = "a,b,c,c,d,b,c,a,d";
 8 var arr = str.split(",");
 9 console.log(arr[3].length);
10 console.log(arr[6].length);
11 var flag = (arr[3]==arr[6]);
12 
13 console.log(flag);
14 var str2 = "";//字数
15 //console.log(arr);
16 for (var i = 0; i < arr.length; i++) {
17     var q = 1;//计数器
18     //使数组中的每一项与其后面所有的数据做比较找出重复数据
19     for (var j = i + 1; j < arr.length; j++) {
20         if (arr[i] == arr[j]) {
21             q++;
22             arr.splice(j, 1);//删除后面重复的元素
23             j--;//下标回退
24         }
25     }
26     if (i == arr.length - 1) {
27         str2 += arr[i]+" "+q;
28         console.log(arr[i]);
29     } else {
30         str2 += arr[i] + " " + q + "、";
31     }
32     //console.log(arr[i]+" "+q);
33 }
34 
35 console.log(str2);
36 console.log(arr.join(""));

 

posted @ 2017-04-09 09:19  惠远建  阅读(351)  评论(0编辑  收藏  举报