js锻炼逻辑的练习题

1.判断一个数是不是质数?(个人写了两种答案)

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

</html>
<script>
    // 封装一个函数
    function lin(n) {
        // 计算个数的变量
        var content = 0
            // 循环遍历
        for (var i = 0; i <= n; i++) {
            // 找因数
            if (n % i == 0) {
                // 计数器累加
                content++
            }
        }
        // 除了1和本身没有别的因数就是质数 所以计数的因数等于2就是质数
        if (content === 2) {
            return true
        } else {
            return false
        }
    }
    console.log(lin(7));
</script>
  // 除了1和它本身,没有其他的因数就是质数
    var num = prompt("请输入一个数字");
    //  定义一个变量  初始值为true
    var flag = true;
    if (num <= 1) {
        alert('不是一个合法数字')
    } else {
        // 已知质数就是除了1和它本身的数  所以循环遍历从2开始  小于自身
        for (var i = 2; i < num; i++) {
            // 又因为除了1和它本身 没有因数才是质数所以取余等于0时就是false
            if (num % i == 0) {
                flag = false;
            }
        }
        // 然后就判断  如果为true就是质数否则就不是质数
        if (flag) {
            alert(num + "是一个质数");
        } else {
            alert(num + "不是一个质数");
        }
    }

2.水仙花数(个人写了两种)

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

</html>
<script>
    // 封装一个函数
    function lin() {
        // 因为水仙花数是三位数  所以循环100-1000的所有数字
        for (var i = 100; i < 1000; i++) {
            // 水仙花数的条件就是百位的立方+十位的立方+个位的立方等于这个数本身
            var sum = parseInt(i / 100) ** 3 + parseInt(i / 10 % 10) ** 3 + parseInt(i % 10) ** 3
                // 判断得到的结果是不是跟100-1000的数字相等  如果相等就是水仙花数
            if (sum == i) {
                console.log(i);
            }
        }
    }
    lin()
</script>
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

</html>
<script>
    // 所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数* **本身。**例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方
    // 第一层循环百位数
    for (var i = 1; i < 9; i++) {
        // 第二层循环十位数
        for (var j = 0; j < 9; j++) {
            // 第三层循环个位数
            for (var x = 0; x < 9; x++) {
                // 判断百位的立方+十位的立方+个位的立方是否等于100乘循环的自身+10乘循环的自身+1乘循环的自身
                // 如果相等就是水仙花数
                if (i * i * i + j * j * j + x * x * x == 100 * i + 10 * j + x) {
                    document.write(100 * i + 10 * j + x + "<br/>");
                }
            }
        }
    }
</script>

3.求1到10000的完美数

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

</html>
<script>
    // 遍历1到10000所有数字
    for (var i = 1; i < 10000; i++) {
        // 定义一个变量赋值为0
        var num = 0;
        // 已知完美数是除去它本身的因数之和
        // 所以循环比它自身小的数
        for (var j = 1; j < i; j++) {
            // 当它取余等于0时  证明时它的因数
            if (i % j == 0) {
                // 相加求和
                num += j;
            }
        }
        // 然后判断这个和是否是1-10000里边的数字如果相等那么这个数就是完美数
        if (num == i) {
            console.log(i);
        }
    }
</script>

4.判断是不是一个完美数

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

</html>
<script>
    // 输入框
    var n = Number(prompt('输入一个数字'))
    // 计算和的变量
    var sum = 0
    // 循环这个数
    for (var i = 1; i < n; i++) {
        // 取余找因数
        if (n % i == 0) {
            // 累加的和
            sum += i
        }

    }
    // 判断累加的和是不是这个数字
    if (sum === n) {
        alert('是完美数')
    }
</script>

5.1-60 能被7整除和末尾不是7的数

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

</html>
<script>
    // 循环1-60的数
    for (var i = 1; i <= 60; i++) {
        // 因为不能整除7且末尾不是7所以判断取余7不等于0取余10不等于7
        if (i / 7 != 0 && i % 10 != 7) {
            console.log(i);
        }
    }
</script>

6.已知今天星期二,1000天后星期几?随便输入一个天数看一下星期几?

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

</html>
<script>
    // 该题假设今天是星期二,又一个星期为七天是固定的,所以只要是7倍数的天数,就都为星期二。
    // 所以,不论是求多少天后是星期几,只要将天数对7取余得到的数+2就能得到今天是星期几。
    var day = parseInt(prompt('请随便输入一个天数', 1000))

    var what = day % 7
        // 因为今天是星期二但是一周是7天所以加2  得出今天星期几
    var Tuesday = 2 + what

    if (Tuesday > 7) {
        var Tuesday = Tuesday % 7
    } else {
        Tuesday
    }
    // 循环遍历算出具体星期几
    switch (Tuesday) {
        case 1:
            alert('今天星期一')
            break;
        case 2:
            alert('今天星期二')
            break;
        case 3:
            alert('今天星期三')
            break;
        case 4:
            alert('今天星期四')
            break;
        case 5:
            alert('今天星期五')
            break;
        case 6:
            alert('今天星期六')
            break;
        default:
            alert('今天星期日')
            break;
    }
</script>

7.用户输入一个三位数,弹出各个数位的和。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

</html>
<script>
    var num = parseInt(prompt('请输入一个三位数'))
        // 获取百位数
    var hundred = parseInt(num / 100)
        // 获取十位数
    var ten = parseInt(num % 100 / 10)
        // 获取个位数
    var individual = parseInt(num % 10)
        // 弹出
    alert(hundred + ten + individual)
</script>

8.

某个公司要给员工发年终奖,为了奖励老员工,所以工作时间越长,发的越多,规则如下:

工作满0年 发月薪的1倍月薪年终奖,如果月薪大于8000,那么就是发1.2倍

工作满1年 发月薪的1.5倍月薪年终奖,如果月薪大于10000,那么就是发1.7倍

工作满2年,甚至更多 发月薪的3倍月薪年终奖,如果月薪大于12000,那么就是发3.2倍

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

</html>
<script>
    var year = parseInt(prompt('请输入工作年限'))
    var pay = parseInt(prompt('请输入月薪'))
    if (year == 0) {
        if (pay > 8000) {
            alert('您的年终奖为' + (pay * 1.2) + '元')
        } else {
            alert('您的年终奖为' + pay + '元')
        }
    } else if (year == 1) {
        if (pay > 10000) {
            alert('您的年终奖为' + (pay * 1.7) + '元')
        } else {
            alert('您的年终奖为' + (pay * 1.5) + '元')
        }
    } else if (year == 2) {
        if (pay > 12000) {
            alert('您的年终奖为' + (pay * 3.2) + '元')
        } else {
            alert('您的年终奖为' + (pay * 3) + '元')
        }
    } else {
        alert('请输入正确的年限')
    }
</script>

9.

用户输入一个年份,判断这个年是否是闰年。

判断闰年条件:

① 非整百年数除以4,无余为闰,有余不闰;

② 整百年数除以400,无余为闰,有余不闰

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

</html>
<script>
    var num = prompt('请输一个年份')
    if (num % 100 !== 0 && num % 4 === 0 || num % 400 === 0 && num % 100 === 0) {
        alert('今年是闰年')
    } else {
        alert('今年是平年')
    }
</script>

10.圆的面积跟周长

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

</html>
<script>
    // 定义类
    class Circle {
        // 构造函数形参
        constructor(r) {
                this.r = r
            }
            // 计算周长
        length() {
                console.log((2 * Math.PI * this.r).toFixed(2));
            }
            // 计算面积的
        area() {
            console.log((Math.PI * this.r * this.r).toFixed(2));
        }
    }
    // 实例化对象传实参
    var circle = new Circle(5)
        // 调用
    circle.length()
    circle.area()
</script>

11.用户输入一个数字n计算:

 

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

</html>
<script>
    var n = Number(prompt('请输入一个数字'))

    function lin(n) {

        if (n == 2) return 3 / 2
        return (n + 1) / n + lin(n - 1)

    }
    console.log(lin(n));
</script>

12.斐波那契数列

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

</html>
<script>
    // 斐波那契  已知条件 
    // 1     1   2     3   5
    // n=1  n=2  n=3  n=4  n=5
    function Fibonacci(n) {
        if (n == 1 || n == 2) return 1
        return Fibonacci(n - 1) + Fibonacci(n - 2)
    }
    console.log(Fibonacci(7));
</script>

相关文章

学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习...
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面...
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生...
Can’t connect to local MySQL server through socket \'/v...
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 ...
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服...