前端部分练习

本文包含一系列编程挑战,包括使用递归解决的斐波那契数列(楼层问题、兔子问题)、生成棱形图案的代码、寻找水仙花数(每个位数立方和等于原数的三位数)以及计算阶乘和序列求和的示例。这些例子展示了基础算法和数学在编程中的应用。
摘要由CSDN通过智能技术生成

一、楼层问题

<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="utf-8">
        <title>Document</title>
    </head>
    <body>
        <script>
            function step(n){
                if (n==1){
                    return 1
                }
                if(n==2){
                    return 2
                }
                return step(n-1)+step(n-2)
            }
            console.log(step(10))
        </script>    
    </body>
</html>

二、兔子问题

<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="utf-8">
        <title>Document</title>
    </head>
    <body>
        <script>
            //1 1 1 2 3 4 6 9 13
            function rabbit (n){
                if (n<4){
                    return 1
                }
                return rabbit(n-1) + rabbit(n-3)
            }
            console.log(rabbit(6))
        </script>
    </body>
</html>

  

三、棱形代码

<!DOCTYPE html>
<html lang="zh">
 <head>
  <meta charset="UTF-8">
  <title>Document</title>
 </head>
 <body>
  <script>
   //    *           
   //   ***            
   //  *****          
   // *******          
   //  *****          
   //   ***           
   //    *       
   // 层 1 2 3 4
   // 空 3 2 1 0
   // 星 1 3 5 7
   // star = current * 2 - 1
   // up_layer = math.floor(total_layer / 2) + 1
   // space =  up_layer - current
layer = parseInt(prompt("请输入层数"))
   up_layer = Math.ceil(layer / 2)
   for (let i = 1; i <= up_layer; i++){
    str = ""
    space_num = up_layer - i;
    for(let j = 1;j <= space_num; j++){
     str += " "
    }
    star_num = i * 2 -1
    for(let j = 1; j <= star_num; j++){
     str += "*"
    }
    console.log(str)
   }
   down_layer = 1
   for (let i=down_layer;i<=3; i++){
       let space_num = i
       let star_num=layer - space_num*2
       let str=""
       for(let j =0;j<space_num;j++){
            str +=' '
       }
       for (let j =0;j<star_num;j++){
           str +='*'
       }
       console.log(str)
   }
  </script>
 </body>
</html>

 四、水仙花问题

<!DOCTYPE html>
<html>
    <head lang="zh">
        <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>
        <script>
            for(let i=100;i<1000;i++){
                let gewei = i %10
                let shiwei =parseInt(1 /10)%10
                let baiwei =parseInt(1 /100)
                if(gewei **3+ shiwei**3+ baiwei**3==i){
                    console.log(i)
                }
            }
        </script>
    </body>
</html>

五、10!问题

 <!DOCTYPE html>
<html>
    <head lang="zh">
        <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>
        <script>
            let fac =1
            for(let i=2;i<=10;i++){
                fac *=i
            }
            console.log(fac)
        </script>
    </body>
</html>

六、10!+9!+8!+......+1!问题

 <!DOCTYPE html>
<html>
    <head lang="zh">
        <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>
        <script>
            function getFac(n){
                let fac =1
                for(let i=2;i<=n;i++){
                    fac *=i
                }
                console.log(fac)
                return fac
            }
            sum=0;
            for(let i=1;i<=10;i++){
                sum+=getFac(i)
            }
            console.log(sum)
        </script>
    </body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值