JS实现374.猜数字

本章主要用两种方法实现递归与非递归
使用递归的话,可能会导致空间消耗要比非递归代码要大很多。
非递归

var guessNumber = function (n) {
    let low = 1, high = n
    while (low <= high) {
        let mid = Math.floor((low + high) / 2)
        const res = guess(mid)
        if (res === 0) {
            return mid
        } else if (res === 1) {
            low = mid + 1
        } else {
            high = mid - 1
        }
    }
};

递归

const rec = (low, high) => {
        if (low > high) return;
        const mid = Math.floor((low + high) / 2);
        const res = guess(mid);
        if (res === 0) {
            return mid;
        } else if (res === 1) {
            return rec(mid + 1, high);
        } else {
            return rec(1, mid - 1);
        }
    };
    return rec(1, n);
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 好的,下面是一个简单的实现猜数字小游戏的 JavaScript 代码: ```javascript // 生成1~100之间的随机整数 const randomNumber = Math.floor(Math.random() * 100) + 1; // 初始化猜测次数为0 let guessCount = 0; // 获取用户输入的数字 function getUserGuess() { const userGuess = prompt("请输入一个1~100之间的整数"); // 如果用户点击取消或者输入无效数字,则返回null if (userGuess === null || isNaN(userGuess)) { return null; } return Number(userGuess); } // 比较用户猜测的数字与随机数字 function compareNumbers(userGuess, randomNumber) { if (userGuess === randomNumber) { return { result: "恭喜你猜对了!", correct: true }; } else if (userGuess < randomNumber) { return { result: "猜小了,请再试一次。", correct: false }; } else { return { result: "猜大了,请再试一次。", correct: false }; } } // 开始游戏 function startGame() { let userGuess = getUserGuess(); while (userGuess !== null) { guessCount++; // 猜测次数加1 const result = compareNumbers(userGuess, randomNumber); alert(result.result); if (result.correct) { alert(`你共猜测了${guessCount}次。`); break; } userGuess = getUserGuess(); } } // 执行游戏 startGame(); ``` 这段代码会在浏览器中弹出一个提示框,要求用户输入1~100之间的整数来猜数字,直到用户猜对为止,并且会告诉用户猜了多少次才猜对。 ### 回答2: 猜数字小游戏是一种常见的互动游戏,在JavaScript实现这个游戏非常简单。 首先,我们需要生成一个随机数作为答案,可以使用Math.random()函数来生成一个0到1之间的随机小数,然后乘以一个数值范围,再向下取整得到一个整数。 接下来,我们需要编写一个函数来判断玩家所猜测的数字与答案的关系。可以通过比较玩家输入的数字与答案之间的大小关系,来提示玩家猜的数字是偏大还是偏小,还是正确。 最后,我们需要创建一个循环来让玩家有多次机会来猜测答案。可以使用while循环或者do-while循环,直到玩家猜中答案为止。 下面是一个简单的代码示例: ```javascript let answer = Math.floor(Math.random() * 100) + 1; // 生成1到100之间的随机整数作为答案 let guess = 0; // 玩家的猜测数字 while (guess !== answer) { guess = parseInt(prompt("请输入一个1到100之间的整数:")); // 提示玩家猜测数字,并将字符串转换为整数 if (guess < answer) { alert("猜小了,请继续猜测!"); } else if (guess > answer) { alert("猜大了,请继续猜测!"); } else { alert("猜对了!答案就是" + answer); } } ``` 通过这个简单的代码示例,我们可以实现一个简单的猜数字小游戏。玩家可以根据系统的提示来不断猜测,直到猜对为止。这个小游戏可以提高玩家的逻辑思维和数学计算能力,同时也增加了一些趣味性。 ### 回答3: 猜数字小游戏是一个非常经典的游戏,而使用JavaScript实现这个游戏也是相对简单的。 首先,我们需要一个随机生成一个整数的函数,以作为游戏中的目标数字。可以使用Math.random()函数生成0到1的随机数,并将其乘以一个范围内的数字,再加上一个偏移量。例如,要在1到100之间生成随机整数,可以使用以下代码: ```javascript function generateRandomNumber(min, max) { return Math.floor(Math.random() * (max - min + 1) + min); } ``` 接下来,我们需要一个函数来接受用户的猜测,并根据猜测的结果给出相应的提示。在这个函数中,我们可以使用条件语句来判断用户的猜数字是太大、太小还是正确。例如: ```javascript function guessNumber(target) { var guess = parseInt(prompt("请输入一个整数:")); if (guess > target) { alert("猜大了!再试一次。"); guessNumber(target); } else if (guess < target) { alert("猜小了!再试一次。"); guessNumber(target); } else { alert("恭喜你,猜对了!"); } } ``` 最后,我们只需要调用这两个函数即可开始游戏。例如: ```javascript var targetNumber = generateRandomNumber(1, 100); guessNumber(targetNumber); ``` 以上就是使用JavaScript实现猜数字小游戏的简单示例。当然,你可以根据自己的需求进行扩展,例如增加游戏的级别、计数猜测的次数等等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值