web前端JS第六天---循环的使用

本文展示了几个编程示例,包括使用JavaScript生成菱形图案,找出所有三位水仙花数,以及解决斐波那契式的兔子问题。通过循环和递归算法,分别实现了不同场景下的计算和输出功能。
摘要由CSDN通过智能技术生成

输出菱形

<!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 =  up_layer - 1
			for (let i = down_layer; i >= 1; i--){
				str = ""
				space_num = down_layer - i + 1;
				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)
			}
		</script>
	</body>
</html>

在这里插入图片描述

求所有三位水仙花数(水仙花数就是:个位的立方➕十位的立方➕百位的立方=这个数本身)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script>
			for (let i = 100; i <= 999; i++){
				let ge = i % 10
				let shi = parseInt(i/10)  % 10
				let bai = parseInt(i/100)
				
				if (i == Math.pow(ge,3) + Math.pow(shi,3) + Math.pow(bai,3)){
					console.log(i)
				}
			}
		</script>
	</body>
</html>

在这里插入图片描述
用循环求10!

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script>
			let sum = 1
			for(let i = 1; i <= 10; i++){
				sum *= i
			}
			console.log(sum)
		</script>
	</body>
</html>

在这里插入图片描述
用循环求10!+9!+8!……1!

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script>
			let count = 0
			let a = 1
			for(let i = 1; i <= 10; i++){
				a = a*i
				count += a
			}
			console.log(count)
		</script>
	</body>
</html>

在这里插入图片描述

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

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<!-- 1.假如一次只能走上一阶或者一下子蹦上两阶。 
		现在一共有N阶台阶,请你计算一下从第0阶到第N阶共有几种走法。  -->
		<script>
			let steps = parseInt(prompt("请输入台阶数量:"))
			console.log("一共有"+Climb(steps)+"种方法")
			function Climb(n){
				if(n <= 2){
					return n
				}
				return Climb(n-1) + Climb(n-2)
			}
		</script>
	</body>
</html>

在这里插入图片描述
在这里插入图片描述

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

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script>
			let m = parseInt(prompt("请输入月份数:"))
			console.log("第"+m+"个月有"+Rabbit(m)+"只")
			function Rabbit(n){
				if(n <= 4){
					return 1
				}
				return Rabbit(n-1)+Rabbit(n-3)
			}
		</script>
	</body>
</html>

在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值