web前端第五次作业

1.※型菱形输出:

<!DOCTYPE html>
<html lang="zh">
 	<head>
  		<meta charset="UTF-8">
  		<title>Document</title>
 	</head>
	<body>
		<script>{
			   //    *           
			   //   ***            
			   //  *****          
			   // *******          
			   //  *****          
			   //   ***           
			   //    *       
			   // 层 1 2 3 4 5 6 7
			   // 空 3 2 1 0 1 2 3
			   // 星 1 3 5 7 5 3 1
			   // 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 <= layer; i++){
				if(i<=up_layer){
					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 += "*"
						}

				}else{
					str = ""
					Space_num = i - up_layer;
					for(let j = 1;j <= Space_num;j++){
						   str += " "
					}
					Star_num = up_layer*2 - ((i-up_layer)*2 + 1);
					for(let j = 1; j <= Star_num; j++){
						str += "*"
						}
					
				}
				
			
				
			
			console.log(str)
			}
		}
		</script>
	</body>
</html>

结果呈现:
在这里插入图片描述

2.输出小于1000的水仙花数:

<head>
    <meta charset="UTF-8">
    <title></title>
</head>

<body>
    <script>
        function num() {
            for (i = 100; i < 1000; i++) {
                let a = i % 10,
                    b = parseInt((i / 10) % 10),
                    c = parseInt(i / 100)
                let sum = Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3)
                if (i == sum) {
                    console.log(i)
                }
            }
        }
        num()
    </script>
</body>


</html>

结果呈现:
在这里插入图片描述

3.求10!:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			function factorial(num) {
			    var str = '10!='
			    var sum = 1
			    for (var i = num; i > 0; i--) {
			        sum = sum * i
			        if (i == 1) {
			            str = str + i + '='
			        } else {
			            str = str + i + '*'
			        }
			    }
			    console.log(str + sum)
			}
			factorial(10)

		</script>
	</body>
</html>

结果呈现:
在这里插入图片描述

4.求10!+9!+ . . . . . . +1!= :

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			function factorial(num) {
			    let str = num + '!='
			    let sum = 1
			    for (let i = num; i > 0; i--) {
			     	sum = sum * i
			     	if (i == 1) {
					      str = str + i + '='
					} else {
						str = str + i + '*'
					}
			    }
			    console.log(str + sum)
			    return sum
			}
			
			function factorial_total(digit) {
				let str = 0
			    let sum = 0
			    for (let i = digit; i >= 1; i--) {
			
			     	sum = sum + factorial(i)
			     	if (i == 1) {
					      str = str + i +'!' + '='
					} else {
						str = str + i + '!' + '+'
					}
			    }
			    console.log(str + sum)
			    
			}
			factorial_total(10)
		</script>
	</body>
</html>

结果呈现:
在这里插入图片描述

5.假如一次只能走上一阶或者一下子蹦上两阶。 现在一共有N阶台阶,请你计算一下从第0阶到第N阶共有几种走法。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<!--假如一次只能走上一阶或者一下子蹦上两阶。 现在一共有N阶台阶,请你计算一下从第0阶到第N阶共有几种走法。--> 
		<script type="text/javascript">
			function f(n){
			    if(n<=2) 
			    	return n;
			    x = f(n-1)+f(n-2)
			    return x;
			}
			console.log(f(10))
		</script>
	</body>
</html>

结果呈现:
10个阶梯时,
在这里插入图片描述

6.一对小兔子,4个月能长大,长大以后每个月生一对小兔子,求第n个月有多少对兔子。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<!--一对小兔子,4个月能长大,长大以后每个月生一对小兔子,求第n个月有多少对兔子。-->
		<!--yue:    1 2 3 4 5 6 7
		count:  	1 1 1 1 2 3 4-->
		<script type="text/javascript">
			function _count(n){
				if(n<=4){
					return n==0?0:1
				}
				return _count(n-1) + _count(n-3)
			}
			let n=parseInt(prompt("请输入月份:"))
			console.log(_count(n))
		</script>
	</body>
</html>

结果呈现:
第7月时,

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值