黑马程序员技术交流社区

标题: 【广州前端】前端基础入门之js基础练习题解析(一) [打印本页]

作者: AMay    时间: 2018-11-1 16:08
标题: 【广州前端】前端基础入门之js基础练习题解析(一)
【前言】        
         下面是一些关于在学习javascript基础阶段的时候,比较常见的一些练习题。并整理了这些练习的的解题思路和步骤分析
【例题】
1.       找出1到100之间的素数
分析: 1.1素数从2开始,只能被1和本身整除
    1.2 2开始一步一步开始找到100, 每一个都假设是素数都需要遍历(循环),第一个for循环,自增的变量为i;
    1.3每个数都从2开始到它自己(i)为止,是否能被整除,是否需要推翻假设,第二个for循环。
[HTML] 纯文本查看 复制代码
// 1. 从2开始到遍历到100,假设这里的数都是素数

                for (var i = 2; i <= 100; i++) {

                         // 2. 设置一个标识,标识是素数

                         var flag = true;

                         // 4. 验证假设的过程

                         // 4.1  假如 i 为6

                         //  i%2 == 0  i%3 == 0  i%4 == 0 i%5==0

                              for(var j=2 ;j < i; j++){

                                       if(i%j==0){

                                                // j =2

                                                // 已i为6为例, 假如他能被 2到5之间的数整除,就会进到这个判断条件

                                                // 这个假设就不成立

                                                flag = false;

                                                break;

                                       }

                              }

                         // 3. 如果假设成立,那么i就是素数

                         if(flag == true){

                                  console.log(i);

                         }

                };
2. 有个人想知道,一年之内一对兔子能繁殖多少对?于是就筑了一道围墙把一对兔子关在里面。已知一对兔子每个月可以生一对小兔子,而一对兔子从出生后第3个月起每月生一对小兔子。假如一年内没有发生死亡现象,那么,一对兔子一年内(12个月)能繁殖成多少对?已知兔子的规律为数列: 1123581321...
      (提示:观察数列的规律即可)
分析: 首先,找出兔子繁殖的规律:11235813.....,由此可以看出,第一个数+第二个数= 第三个数;  第二个数+ 第三个数= 第四个数.....
步骤解析:1.定义三个变量,然后两个初始化值。第三个作为存储使用       
        2.先把第二个变量存储进入第三个变量汇总,第二个变量重新赋值成为第一个和第二个之和
      3.把存储好的第三个变量赋值给第一个变量。
      4.执行12(因为前两项不需要计算,所以只需要执行10)
[HTML] 纯文本查看 复制代码
 // 1.先定义三个变量,一个变量用存储的,两个变量用来做初始化的值

    var num;

    var num1 = 1;

    var num2 = 1;

    //2.计算12个月后兔子的繁殖熟练,只需循环12-2=10次即可,因为第1对兔子和第2对兔子已经初始化

    for (var i = 0; i < 10; i++) {

        //先把第二个变量存储在第三方变量num中;

        num = num2;

        //num1和num2的值相加,赋值给num2,使num2的值更新.

        num2 = num1 + num2;

        //把前面用第三方变量缓存起来的num2的值,赋值给num1,使num1的值更新;

        num1 = num;

    }

alert(num2);
3.     输入日期,判断这个日期是这一年的第几天?
[HTML] 纯文本查看 复制代码
//先判断是否是闰年

    function isLeap(year){

        if (year % 400 == 0 || year % 4 === 0 && year % 100 !== 0){

            return true;

        }else{

            return false;

        }

    }

    // //获取天数

    //假设 month = 5   day = 23

    //

    function  getDays(year,month,day){

        //先将每个月份的天数存入数组中

        var arr = [31,28,31,30,31,30,31,31,30,31,30,31];

        //将输入月份之前月份的天数累加

        for(var i = 0; i< month -1;i++){

            day += arr;

        }

        //判断是否是闰年且看是否大于2月(小于2月没必要考虑闰年问题)

        if(month > 2 && isLeap(year)){

            day ++;

        }

        return day;

    }
   






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2