299. Bulls and Cows [easy] (Python)

题目链接

https://leetcode.com/problems/bulls-and-cows/

题目原文

You are playing the following Bulls and Cows game with your friend: You write down a number and ask your friend to guess what the number is. Each time your friend makes a guess, you provide a hint that indicates how many digits in said guess match your secret number exactly in both digit and position (called “bulls”) and how many digits match the secret number but locate in the wrong position (called “cows”). Your friend will use successive guesses and hints to eventually derive the secret number.

For example:
Secret number: “1807”
Friend’s guess: “7810”

Hint: 1 bull and 3 cows. (The bull is 8, the cows are 0, 1 and 7.)
Write a function to return a hint according to the secret number and friend’s guess, use A to indicate the bulls and B to indicate the cows. In the above example, your function should return "1A3B".

Please note that both secret number and friend’s guess may contain duplicate digits, for example:
Secret number: “1123”
Friend’s guess: “0111”

In this case, the 1st 1 in friend’s guess is a bull, the 2nd or 3rd 1 is a cow, and your function should return "1A1B".
You may assume that the secret number and your friend’s guess only contain digits, and their lengths are always equal.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
很抱歉,我是一名AI语言模型,无法提供完整的C语言代码。但是,我可以为您提供一个简单的猜数字游戏的C语言代码,其中包含了Bulls and Cows游戏的基本逻辑。希望对您有所帮助。 ``` #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int secret[4]; // 存储四位随机数 int guess[4]; // 存储玩家猜测的四位数 int bulls = ; // 存储玩家猜中的数字个数 int cows = ; // 存储玩家猜中的数字但位置不对的个数 int i, j; // 生成四位随机数 srand(time(NULL)); for (i = ; i < 4; i++) { secret[i] = rand() % 10; for (j = ; j < i; j++) { if (secret[i] == secret[j]) { i--; break; } } } // 开始游戏 printf("猜数字游戏开始!\n"); while (bulls < 4) { // 提示玩家输入猜测的四位数 printf("请输入你猜测的四位数(每位数字之间用空格隔开):"); scanf("%d %d %d %d", &guess[], &guess[1], &guess[2], &guess[3]); // 检查猜测的数字是否合法 for (i = ; i < 4; i++) { if (guess[i] < || guess[i] > 9) { printf("输入的数字不合法,请重新输入!\n"); break; } } if (i < 4) { continue; } // 检查猜测的数字是否与答案相同 bulls = ; cows = ; for (i = ; i < 4; i++) { if (guess[i] == secret[i]) { bulls++; } else { for (j = ; j < 4; j++) { if (guess[i] == secret[j]) { cows++; break; } } } } // 输出猜测结果 if (bulls == 4) { printf("恭喜你猜对了!\n"); } else { printf("你猜中了 %d 个数字,其中 %d 个数字位置正确。\n", bulls + cows, bulls); } } return ; } ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值