【编程题】好多鱼!--大鱼吃小鱼问题

c++大鱼吃小鱼游戏代码 一款很经典的小游戏,用c++编写的,画面很好看。 立即下载

牛牛有一个鱼缸。鱼缸里面已经有n条鱼,每条鱼的大小为fishSize[i] (1 ≤ i ≤ n,均为正整数),牛牛现在想把新捕捉的鱼放入鱼缸。鱼缸内存在着大鱼吃小鱼的定律。经过观察,牛牛发现一条鱼A的大小为另外一条鱼B大小的2倍到10倍(包括2倍大小和10倍大小),鱼A会吃掉鱼B。考虑到这个,牛牛要放入的鱼就需要保证:
1、放进去的鱼是安全的,不会被其他鱼吃掉
2、这条鱼放进去也不能吃掉其他鱼
鱼缸里面已经存在的鱼已经相处了很久,不考虑他们互相捕食。现在知道新放入鱼的大小范围minSize,maxSize(考虑鱼的大小都是整数表示),牛牛想知道有多少种大小的鱼可以放入这个鱼缸。

  • 输入描述:

输入数据包括3行. 第一行为新放入鱼的尺寸范围minSize,maxSize(1 ≤ minSize,maxSize ≤
1000),以空格分隔。 第二行为鱼缸里面已经有鱼的数量n(1 ≤ n ≤ 50) 第三行为已经有的鱼的大小fishSize[i](1 ≤
fishSize[i] ≤ 1000),以空格分隔。

  • 输出描述:

输出有多少种大小的鱼可以放入这个鱼缸。考虑鱼的大小都是整数表示

  • 输入例子:

1 12
1
1

  • 输出例子:

3

题目分析

我们可以申请一个长度1001的布尔类型数组denial,数组下标为新放入鱼的大小,数组中存放该下标大小的鱼是否可以放到鱼缸里(false表示可以放,true表示不能放)我们只需要把不可以放鱼的位置标记起来,就可以通过遍历数组得到可放位置的数量。

然后,我们可以把问题分成两部分
    1.新放入的鱼不能被其他鱼吃掉,即fishSize*2 到 fishSize*10 不可以放鱼(fishSize是已存在鱼的大小)
        ==>X >= 2*fishSize && X <= 10*fishSize 为不可放鱼的区域
    2.新放入的鱼(X)不能吃其他鱼,即fishSize不在X*2到X*10范围内
        ==>fishSize < 2*X || fishSize > 10*X ==> X >= fishSize/10.0 && X <= fishSize/2 为不可放鱼的区域
        因为鱼大小都是整数,最大边界 fishSize/2向下取整,整形除法自动完成,
                        最小边界fishSize/10.0 要向上取整(用ceil)。
    3.X要满足在minSize和maxSize之间,要在上面两个问题中加入条件

代码

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    int minSize = 0;
    int maxSize = 0;
    int num = 0;
    int fishsize = 0;
    int count = 0;
    bool denial[1001] = { false };

    cin >> minSize >> maxSize >> num;
    for (int idx = 1; idx <= num; idx++)
    {
        cin >> fishsize;
        if (fishsize >= 1 && fishsize <= 1000)
        {
            //情况1:标记会被已存在鱼吃掉的位置
            for (int denIdx = 2 * fishsize; denIdx <= maxSize && denIdx <= 10 * fishsize; denIdx++)
                denial[denIdx] = true;
            //情况2:标记会吃掉已存在鱼的位置
            for (int denIdx = fishsize / 2; denIdx >= minSize && denIdx >= ceil(fishsize / 10.0); denIdx--)
                denial[denIdx] = true;
        }
        else//鱼大小不符合标准
        {
            cout << "input error" << endl;
            return -1;
        }
    }
    //统计没有被标记的位置的数量
    for (int i = minSize; i <= maxSize; i++)
    {
        if (!denial[i])
            count++; 
    }
    cout << count;
    return 0;
}
PyCharm配置及使用Git教程 平时习惯在Windows下开发,但是我们又需要实时将远方仓库的代码clone到本地,也需要将自己修改的代码push到远端服务器。 阅读详情

相关推荐

实用电路精讲系列---快速精密桥式放大器电路

快速精密桥式放大器通过惠斯通电桥转换物理量为差分信号,经仪表放大器精密放大,具有高共模抑制、低噪声和宽带宽特性。其核心包含:电桥传感器转换、仪表放大器信号调理(增益可调、温漂补偿)、输出级适配ADC。典型应用包括智能断路器监测、胎压检测、电池安全预警等10大领域,需注意传感器-放大器-ADC最短路径布局。实用电路采用LT1057S和LT1010构建,实现稳定供电、差分处理、功率放大和桥式驱动,满足高精度、快速响应需求。该技术在工业控制、医疗设备等领域具有重要价值。

weixin_40590799的博客 1414

算法总结2

题目1:牛牛有一个鱼缸。鱼缸里面已经有n条鱼,每条鱼的大小为fishSize[i](1<=i<=n,n为正整数),牛牛现在想把新捕捉的鱼放入鱼缸。鱼缸内存在着大鱼吃小鱼的定律。经观察,牛牛发现一条鱼A的大小为另外一条鱼B大小的2倍到10倍(包括2倍大小和10倍大小),鱼A会吃掉鱼B.考虑这个,牛牛要放入的鱼需要保证:1.放进去的鱼是安全的,不会被其他鱼吃掉 2。这条鱼放进去也不能吃掉其他鱼 鱼

u010593947的博客 607

Java后端实战:钉钉互动卡片消息从配置到生产级对接

在企业级消息推送场景中,机器人通知已从简单的文本向富交互演进。其核心原理在于通过可交互的卡片模板,将传统单向通知升级为双向、有状态的微型应用界面,实现了用户无需跳转即可完成操作的技术价值。这广泛应用于审批、任务确认、数据填报等需要即时反馈的业务流程。本文聚焦于钉钉平台,深入剖析其互动卡片消息机制,并基于Java后端,系统讲解如何实现包括安全验签、异步回调与卡片动态更新在内的生产级对接方案,涵盖配置管理、服务降级等工程实践关键点,助力构建稳定高效的企业消息交互服务。

weixin_30617737的博客 435

牛牛放鱼(好多鱼) C++实现

问题描述 牛牛有一个鱼缸,鱼缸里面已经有n条鱼,每条鱼的大小为fishSize[i](1<=i<=n,均为正整数),牛牛现在想把新捕捉的鱼放入鱼缸。鱼缸里存在着大鱼吃小鱼的定律。经过观察,牛牛发现一条鱼A的大小为另外一条鱼B的大小的2~10倍(包括两倍大小和十倍大小)时鱼A会吃掉鱼B。考虑这种情况,牛牛要放入的鱼需要保证一下几点: (1)放进去的鱼是安全的,不会被其他鱼吃掉。 (2)这...

皮卡丘LIII的博客 2060

紫光同创PGL50H开发板PCIE通信保姆级教程:从IP核安装到Windows设备管理器识别

本文详细介绍了紫光同创PGL50H开发板PCIE通信的全流程,从IP核安装到Windows设备管理器识别。通过环境搭建、工程配置、管脚约束、固件烧录等步骤,帮助开发者快速掌握FPGA与PCIE通信技术,解决实际开发中的常见问题,提升开发效率。

weixin_30500473的博客 433

【密码学】生成8位26个字母和数字的全排列(密码字典,密钥)c++代码(非递归高效直接)

生成8位26个字母和数字的全排列(密钥)代码(非递归高效直接) 用C语言或C++,生成一个8位的26个字母和数字的全排列的原代码,例如从:00000000到ZZZZZZZZ。 说明:生成的这个字典会非常大,有36^8条记录,估计要3T的硬盘,跑一个晚上看看         这个方法比递归更高效,更直接。                                                ...

Wu_Being 的优快云 博客 1万+

C - RJ403 求解好多鱼问题

Problem Description 牛牛有一个鱼缸,鱼缸里面已经有n条鱼,每条鱼的大小为fishSize[i](1<=i<=n,均为正整数),牛牛现在想把新捕捉的鱼放入鱼缸。鱼缸里存在着大鱼吃小鱼的定律。经过观察,牛牛发现一条鱼A的大小鱼另外一条鱼B的大小的2~10倍(包括两倍大小和十倍大小)时鱼A会吃掉鱼B。考虑这种情况,牛牛要放入的鱼需要保证一下几点: (1)放进去的鱼是安全的...

qq_42523037的博客 2473

从流体力学到深度学习:手把手教你用PINN预测涡流场(基于TensorFlow2.10+GPU)

本文详细介绍了如何利用物理信息神经网络(PINN)结合TensorFlow 2.10和GPU加速,预测Navier-Stokes方程的涡流场。通过核心原理讲解、实战环境配置、网络架构设计及物理约束实现,帮助读者掌握从流体力学到深度学习的跨学科技术应用,特别适合处理复杂流体问题和非定常流动场景。

weixin_29048309的博客 212

51Nod-1289-大鱼吃小鱼

有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右。游动的速度是一样的,两条鱼相遇大鱼会吃掉小鱼。从左到右给出每条鱼的大小和游动的方向(0表示向左,1表示向右)。问足够长的时间之后,能剩下多少条鱼? Input 第1行:1个数N,表示鱼的数量(1 <= N <= 100000)。 第2 - N + 1行:每行两个数A[i], B[i],中间用空格分隔,分别表示鱼的大小及游动

逐梦者 1603

微信小程序 - 最新详细实现 “餐厅食堂外卖点餐“ 全屏左右联动菜单列表功能界面,附带搜索框、购物车功能、商品加减计算金额、折扣等,左侧商品分类,右侧列表数据,仿美团饿了么外卖点餐页面,饭店扫码点餐!

微信小程序,vue2,vue3,左右联动菜单,商品分类页面,点餐界面,美团外卖点餐,左右布局界面,饿了么点餐页面,左分类右列表,小程序实现左侧菜单,外卖点餐联动,锚点,点击左侧大类后侧列表跟着变跟着刷新,菜单左右联动效果,左菜单右边列表数据,uniapp,左侧菜单,右侧列表双向联动效果,右侧商品滑动时,右侧列表双向联动效果,侧边菜单和右边滚动条,电商项目,购物车,商品加减计算,外卖选餐页面带购物车计算,自动计算金额,微信小程序外卖点餐界面源码,店铺页面滑动左右联动,点餐类小程序界面,堂食,扫码点餐,餐饮行业

🏆 前端领域优质创作者 5160

LabVIEW进行MQTT通信及数据解析

该文章介绍了LabVIEW的MQTT通信的开源VI控制,以及如果进行数据的解析,特别是一些需要注意的点

heda3的博客 4105

第6关:牛牛鱼缸-附加题

输入描述:输入数据包括3行,第1行为新放入鱼的尺寸范围[minSize,maxSize](1<= minSize, maxSize<=1000),以空格分隔,第2行为鱼缸里面已有鱼的数量n(1<=n<=50),第3行为已经有的鱼的大小fishSize[i](1<= fishSize[i]<=1000),以空格分隔。本关任务:问题描述:牛牛有一个鱼缸,鱼缸里面已经有n条鱼,每条鱼的大小为fishSizei,牛牛现在想把新捕捉的鱼放入鱼缸。输出描述:输出有多少种大小的鱼可以放入这个鱼缸。

yrhuadonghui的博客 535

Android车载蓝牙开发全攻略:从基础到高级优化

本文系统介绍了Android车载蓝牙开发的核心技术与实践指南。文章首先阐述了蓝牙在智能汽车中的关键作用,包括免提通话、音频流媒体等应用场景。随后详细解析了蓝牙协议基础,重点介绍了HFP、A2DP等车载常用协议。开发实战部分提供了设备发现、连接、数据传输的完整代码示例,并融入多线程和内存优化技巧。通过真实车载案例,展示了启动时间、流畅度和资源使用的优化策略。最后针对面试需求,提供了专业的技术问答,涵盖蓝牙开发全流程。全文紧密结合Android车载开发职位要求,为开发者提供了一套完整的蓝牙技术解决方案。

郑伟强dev的专栏 118

[编程题] 好多鱼!

题目来源:牛客网 [编程题] 好多鱼! 牛牛有一个鱼缸。鱼缸里面已经有n条鱼,每条鱼的大小为fishSize[i] (1 ≤ i ≤ n,均为正整数),牛牛现在想把新捕捉的鱼放入鱼缸。鱼缸内存在着大鱼吃小鱼的定律。经过观察,牛牛发现一条鱼A的大小为另外一条鱼B大小的2倍到10倍(包括2倍大小和10倍大小),鱼A会吃掉鱼B。考虑到这个,牛牛要放入的鱼就需要保证: 1、放进去的鱼是安全的,不会被其

Cathy1994的专栏 1047

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

2017牛客网校招模拟笔试题01——好多鱼

编程题:好多鱼 题目描述 牛牛有一个鱼缸。鱼缸里面已经有n条鱼,每条鱼的大小为fishSize[i] (1 ≤ i ≤ n,均为正整数),牛牛现在想把新捕捉的鱼放入鱼缸。鱼缸内存在着大鱼吃小鱼的定律。经过观察,牛牛发现一条鱼A的大小为另外一条鱼B大小的2倍到10倍(包括2倍大小和10倍大小...

chunhuang2917的博客 282

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

[编程题]好多鱼!

链接:https://www.nowcoder.com/questionTerminal/e3dd485dd23a42899228305658457927 来源:牛客网 牛牛有一个鱼缸。鱼缸里面已经有n条鱼,每条鱼的大小为fishSize[i] (1 ≤ i ≤ n,均为正整数),牛牛现在想把新捕捉的鱼放入鱼缸。鱼缸内存在着大鱼吃小鱼的定律。经过观察,牛牛发现一条鱼A的大小为另外一条鱼

sloe_gin的博客 1545

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

P1794 求解好多鱼问题

题目描述 牛牛有一个鱼缸,鱼缸里面已经有n条鱼,每条鱼的大小为fishSize[i] (1<i<n, {均为正整数})fishSize[i](1<i<n,均为正整数),牛牛现在想把新捕捉的鱼放人鱼缸。鱼缸里存在着大鱼吃小鱼的 定律。经过观察,牛牛发现一条鱼 A 的大小为另外一条鱼 B 的大小的 2~10倍(包括22倍大小和10 倍大小)时鱼 A 会吃掉鱼 B。考虑到这个情况,牛牛要放入的鱼需要保证以下几点: (1)放进去的鱼是安全的,不会被其他鱼吃掉。 (2)这条鱼放...

Recursions的博客 1495

java大鱼吃小鱼实验报告摘要_java 大鱼吃小鱼游戏总结

java 大鱼吃小鱼游戏总结整体思想:主界面、主角鱼、被吃的鱼、气泡、声音程序主要有7个类组成:DrawStart、Fish、EatenFish、AirBubble、Music、GetImage、MyMouseListenerDrawStart:主界面:简单界面,用swing实现,只需要游戏图片和切换图片;内含主方法,启动游戏;创建几乎全部的属性,最重要的是创建一个内部类线程来实现被吃的鱼气泡的产...

weixin_42097208的博客 2411

牛客网-好多鱼

牛牛有一个鱼缸。鱼缸里面已经有n条鱼,每条鱼的大小为fishSize[i] (1 ≤ i ≤ n,均为正整数),牛牛现在想把新捕捉的鱼放入鱼缸。鱼缸内存在着大鱼吃小鱼的定律。经过观察,牛牛发现一条鱼A的大小为另外一条鱼B大小的2倍到10倍(包括2倍大小和10倍大小),鱼A会吃掉鱼B。考虑到这个,牛牛要放入的鱼就需要保证: 1、放进去的鱼是安全的,不会被其他鱼吃掉 2、这条鱼放进去也不能吃掉其他鱼

小明的博客 3065

3.2 进阶-好多鱼

题目 牛牛有一个鱼缸。鱼缸里面已经有n条鱼,每条鱼的大小为fishSize[i] (1 ≤ i ≤ n,均为正整数),牛牛现在想把新捕捉的鱼放入鱼缸。鱼缸内存在着大鱼吃小鱼的定律。经过观察,牛牛发现一条鱼A的大小为另外一条鱼B大小的2倍到10倍(包括2倍大小和10倍大小),鱼A会吃掉鱼B。考虑到这个,牛牛要放入的鱼就需要保证: 1、放进去的鱼是安全的,不会被其他鱼吃掉 2、这条鱼放进去也不能吃掉...

KK_2018的技术博客_程序员不止是程序员 777

算法题:好多鱼(牛客网)

[编程题] 好多鱼! 牛牛有一个鱼缸。鱼缸里面已经有n条鱼,每条鱼的大小为fishSize[i] (1 ≤ i ≤ n,均为正整数),牛牛现在想把新捕捉的鱼放入鱼缸。鱼缸内存在着大鱼吃小鱼的定律。经过观察,牛牛发现一条鱼A的大小为另外一条鱼B大小的2倍到10倍(包括2倍大小和10倍大小),鱼A会吃掉鱼B。考虑到这个,牛牛要放入的鱼就需要保证: 1、放进去的鱼是安全的,不会被其他鱼吃掉 2、这

SkyFire1121的博客 1771

python小游戏1:大鱼吃小鱼

总目标:实现大鱼吃小鱼游戏 功能概括: 鼠标控制鱼的游动:运动方向的改变和鱼头朝向(即图片旋转角度)的改变。 npc鱼的生命进程:随机从左或右,在随机高度生成随机品种的npc鱼。被吃或游出画面外时内存释放。 吃鱼:用玩家鱼和npc鱼的间距是否低于某值作为判断标准 # 大鱼吃小鱼 import pygame import random from pygame.locals import * from pygame.math import * from sys import exit # 图片资源加载

qq_45750353的博客 7002

大鱼吃小鱼java程序设计

步骤 : 1、创建窗口对象Ui 2、背景的绘制 3、键盘的监听事件 -显示接口 -添加监听事件 4、将己方鱼放上去 5、让小鱼移动 6、其他的鱼并引导(先创建集合将鱼装起来,获得每个对象,画图) 7、吃鱼 8、被吃 package 大鱼吃小鱼; import java.awt.*; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.*; public c.

qq_54008897的博客 4533

大鱼吃小鱼

本项目开发了一款基于Java的"大鱼吃小鱼"游戏,采用面向对象编程思想,运用AWT和Swing库创建界面,实现了多线程游戏循环。玩家通过键盘控制小鱼移动,吃掉低等级鱼获取积分升级,同时躲避高等级鱼。游戏包含动态生成的敌人、碰撞检测、积分等级系统,以及难度递增的多关卡设计。项目亮点包括良好的类封装、动态难度调整和精确的碰撞检测机制,通过JFrame窗口和Graphics绘图实现了完整的游戏交互体验。

2401_87795929的博客 1317

算法面试题之好多鱼

牛客网校园招聘题“好多鱼”。

Yummy 1503
上一篇: 浅谈大端模式和小端模式
下一篇: [编程题]循环单词
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值