Java:细胞分裂

Java题 细胞分裂 Java趣题 有一种细胞,从诞生·第二天开始就能每天中午分裂出一个新的细胞,新的细胞在第二天又开始繁衍。每个细胞分裂两个细胞后将会死亡。假设在第一天,有一个这样的细胞,请问,在第 N 天晚上,细胞的数量是多少?输入一个整数 N(0 < N < 20),请编程求解第 N 天该细胞的数量。 import java.util.Scanner; public class xibaoDome ... 阅读详情

题意:

有一种细胞,从诞生·第二天开始就能每天中午分裂出一个新的细胞,新的细胞在第二天又开始繁衍。每个细胞分裂两个细胞后将会死亡。假设在第一天,有一个这样的细胞,请问,在第 N 天晚上,细胞的数量是多少?输入一个整数 N(0 < N < 20),请编程求解第 N 天该细胞的数量。

思路:

           step1:细胞分裂;

           step2:细胞死亡;

编码:

(1).新建一个cell类,属性divisionCount记录分裂次数,以便判断是否死亡。

public class Cell {
    public int divisionCount = 0;
}

(2).新建一个StartDivision,cells存放细胞总数,initNumber控制初始化(也可用static块控制)。

public class StartDivision {
    public static List<Cell> cells =new ArrayList<Cell>();
    public static int initNumber = 0;
    
    //根据分裂次数获取细胞总数
    public int getCellsNumber(int divisionCount){
        //初始1个,即divisionCount=0;
        //return new Cell().divide(divisionCount);
        return new StartDivision().divide(divisionCount);
    }
    
    public int divide(int divisionCount){
        if(initNumber==0){
            cells.add(new Cell());
            initNumber++;
            if(divisionCount==0)
                return cells.size();
        }
        initNumber++;
        List<Cell> temporaryCells =new ArrayList<Cell>();
        for(Cell cell:cells){
            temporaryCells.add(cell);
        }
        for(int i=0;i<temporaryCells.size();i++){
            //遍历所有的存在的细胞池
            Cell momCell = cells.get(i);
            if(momCell.divisionCount<2){
                //如果分裂次数少于两次,则可以分裂
                Cell sonCell = new Cell();
                cells.add(sonCell);
                cells.get(i).divisionCount++;
                //分裂完遍历删除次数超过两次的-----即细胞死亡
                if((i+1)==temporaryCells.size()){
                    List<Cell> temporaryCells2 =new ArrayList<Cell>();
                    for(Cell cell:cells){
                        temporaryCells2.add(cell);
                    }
                    //for(int j=0;j<temporaryCells2.size();j++){
                /*    for(int j=temporaryCells2.size()-1;j>=0;j--){
                        //list安全删除    方法1 :倒序删除
                        //去除死亡的细胞
                        Cell possibleDiedCell = temporaryCells2.get(j);
                        if(possibleDiedCell.divisionCount>=2){
                            cells.remove(j);
                        }
                    }*/
                    Iterator<Cell> cellsIterator = cells.iterator();
                    while(cellsIterator.hasNext()){
                        //list安全删除  方法2 :迭代器删除
                        Cell possibleDiedCell = cellsIterator.next();
                        if(possibleDiedCell.divisionCount>=2){
                            cellsIterator.remove();
                        }
                    }
                }
            }    
        }
        return cells.size();
    }
}

(3).新建一个divisionDemo类,记录10次对应的细胞总数。

public class divisionDemo {

    /**
     * @param args
     */
    public static void main(String[] args) {
         for (int i = 0; i < 10; i++) {
                System.out.println("cell with time -----------");
                int count = new StartDivision().getCellsNumber(i);
                System.out.println("cell with time i=" + i + "  count=" + count);
         }
    }

}

(4).输出:

cell with time -----------
cell with time i=0  count=1
cell with time -----------
cell with time i=1  count=2
cell with time -----------
cell with time i=2  count=3
cell with time -----------
cell with time i=3  count=5
cell with time -----------
cell with time i=4  count=8
cell with time -----------
cell with time i=5  count=13
cell with time -----------
cell with time i=6  count=21
cell with time -----------
cell with time i=7  count=34
cell with time -----------
cell with time i=8  count=55
cell with time -----------
cell with time i=9  count=89

(5).萌新第一次写博客,大佬别喷。

第15届蓝桥杯Python青少组选拔赛(STEMA)2023年8月真题-附答案 阅读详情

相关推荐

Python 细胞分裂模拟程序

基于Python3 开发的细胞分裂模拟程序。程序可设定细胞死亡周期,细胞分裂需要的资源空间,细胞分裂的最大次数等参数。可以自行优化调整

实现细胞繁衍关键算法C语言

有一种细胞,从诞生第二天开始就能每天分裂出一个新的细胞,新的细胞在第二天又开始繁衍。假设在第一天,有一个这样的细胞,请问,在第 N 天晚上,细胞的数量是多少?输入一个整数 N(0 < N < 20),请编程求解第 N 天该细胞的数量。例如输入 5,输出答案 为 32。 注意:使用循环或者递归完成 ...

幻城砂的博客 1513

全国大学校园网—拓扑图欣赏

全国大学网络拓扑图(一百张) 典型十张 1、 中央财经大学 2、国防科技大学 3、济南大学 4、西安石油大学 5、南通大学IPV6网络 6、中国矿业大学 7、青海师范大学 8、内蒙古科技大学 9、三峡大学 10、中共江苏省党校 剩余90张 点赞、评论获取 ...

LiBai'S BLOG 5万+

Java 细胞分裂问题

例如:随着互联网的不断发展,Java这门技术也越来越重要,很多人都开启了Java的学习之路,本文就介绍了用Java语言解决细胞分裂问题。以上就是今天要讲的内容,本文仅仅简单介绍了Java的使用,此外Java 语言的风格很像 C 语言和C++语言,是一种纯粹的面向对象语言,它继承了 C++ 语言面向对象的技术核心,但是拋弃了 C++ 的一些缺点,比如说容易引起错误的指针以及多继承等,同时也增加了垃圾回收机制,释放掉不被使用的内存空间,解决了管理内存空间的烦恼。

Answer的博客 1209

某讯天御滑块验证码逆向实战:从参数解析到环境对抗

本文详细解析了某讯天御滑块验证码的逆向工程实战技巧,从关键参数解析到浏览器环境模拟对抗。重点介绍了collect、eks等参数的逆向思路,以及如何通过puppeteer等工具补全环境检测,帮助开发者有效突破验证码防护。文章还提供了常见错误解决方案和性能优化建议,是验证码逆向领域的实用指南。

weixin_29325007的博客 437

MSP430项目设计:2020年TI杯大学生电子设计竞赛 坡道行驶电动小车(C题)循迹小车(分享项目展示视频与源码)

文章目录题目要求一、硬件设计二、理论分析与计算三、电路与程序设计四、测试方案与测试结果五、项目展示 哔哩哔哩项目展示视频:https://www.bilibili.com/video/BV1oz4y1d7mH/ 百度网盘资料链接:https://pan.baidu.com/s/1PC-lkSORH_XCgIG-u3HCog 提取码:c7zz 取走记得点赞啊! 题目要求 1.任务 利用TI的MSP430/MSP432平台,设计制作一个四轮电动小车。要求小车能沿着指定路线在坡道上自动循迹骑线行驶。小车必须独立

mbs706的博客 4万+

【JavaSe】容器篇(二) Iterator迭代器

JavaSe·容器篇(二) Iterator迭代器 1. Iterator接口 在程序开发中,经常需要遍历集合中的所有元素。针对这种需求,JDK专门提供了一个接口 java.util.Iterator 。 Iterator 接口也是Java集合中的一员,但它与 Collection 、 Map 接口有所不同,Collection 接口与 Map 接口主要用于存储元素,而 Iterator ...

不想当架构师的程序员不是好程序员 1329

HALCON深度学习模型部署新选择:一份详细的OpenVINO 2021.4 LTS集成与配置避坑指南

本文详细介绍了如何将HALCON深度学习模型与OpenVINO 2021.4 LTS集成,提供环境配置、硬件加速优化及故障排除的实用指南。特别针对Intel独立显卡的AI加速器接口进行优化,帮助机器视觉工程师提升AI推理效率,适用于工业检测等高要求场景。

weixin_42531779的博客 238

16-20题

16.试题编号:J1-16 《中学生数学辅助学习系统》关键算法 (1)任务描述 由于中学数学是培养数学思维的基础阶段,为了让学生打造一个坚实的数学基础,A 学 校决定开发一个中学生数学辅助学习系统,通过完成趣味试题,采用游戏通关的方式,帮助 中学生初步掌握二元一次方程解简单应用题的方法和步骤,并会列出二元一次方程解简单的 应用题。 任务一:实现汽车与摩托问题的关键算法并绘制流程图(30 分) ...

weixin_30458043的博客 2738

深入解析Matlab phantom函数:从基础模体到自定义头部仿真

本文深入解析了Matlab中的phantom函数,它是医学图像处理算法测试的核心工具。文章详细介绍了如何使用内置的Shepp-Logan及其改良版头部仿真模体,并重点讲解了通过自定义参数矩阵来构建专属模体的方法。通过从生成模体到模拟投影(正弦图)再到图像重建的完整实战流程,展示了phantom函数在CT等算法开发与验证中的关键作用。

m3n5b7v8c9x的博客 948

PointPillars代码详解及实现

SourceURL:file://文字文稿1和2D图像的深度学习目标检测很不相同,点云数据具有两个显著特征,为了将图像领域卷积神经网络做模式识别的经验引入三维点云中,一些深度学习方法采用了三维卷积方法或者是将点云投射为2维深度图,还有一类方法是使用鸟瞰视角Bird’s Eye View,来组织点云数据的输入,相比于2维深度图,鸟瞰图不存在遮挡问题但是数据分布更加稀疏造成网络特征学习效率低下。

m0_47313541的博客 659

蓝桥杯练习:细胞分裂问题

题目描述 有一个细胞,每一个小时分裂一次,一次分裂出一个新细胞,第三个小时分裂后会自然死亡。那么M(M<=20)个小时后有多少细胞? 输入 输入的第一行包含一个正整数N,表示有N组测试数据; 接着是N行数据,每行包含一个正整数M,表示M小时。 输出 输出对应M小时后的细胞数量,每组数据的输出占一行。 样例输入 3 3 4 5 样例输出 7 13 24 import ...

qq_41476060的博客 1698

015:机载三维激光扫描技术相关知识

机载三维激光扫描系统(LiDAR)是集激光、GPS、INS等尖端技术于一体的三维航空遥感技术,能高效准确获取地表三维信息。该系统由GPS、INS、激光扫描测距系统、成像装置和工作平台组成,各部件协同工作以获取精确的空间定位、运动状态、地表三维坐标及真实色彩信息。通过制定飞行计划、安置GPS基站、激光扫描测量、惯性测量及获取高清数码影像等步骤,机载LiDAR技术能实时获取大范围高精度三维数据。该技术具有扫描速度快、精度高、全数字特征等优势,广泛应用于测绘、工程、环境监测和城市建设等领域,如城市三维模型重建、灾

qq_31762031的博客 1725

细胞分裂2java版第4关怎么过_Cube Escape: Seasons

《方块密室逃脱:四季》(Cube Escape: Seasons)是一款密室逃脱题材益智游戏。Cube Escape: Seasons第4关怎么过?今天小编就给大家带来游戏的第4关Cube Escape: Seasons Winter图文攻略,一起来看一看吧。Cube Escape: Seasons视频攻略>>>点击查看<<<Cube Escape: Seaso...

weixin_42535461的博客 913

面向企业架构师的 SAP BTP 全景实践:多云、账户、运行时与端到端开发路径

摘要:SAP BTP为企业提供多云、多运行时(Cloud Foundry/Kyma/ABAP Cloud)的数字化转型平台,支持快速构建扩展应用。关键选择包括:1)根据合规与性能选择区域;2)区分Trial(90天限制)与Free Tier(无期限)方案;3)按场景选择运行时(CF适合微服务/Kyma适合云原生/ABAP Cloud适合S/4HANA扩展)。建议优先使用Free Tier进行POC,并通过BTP Cockpit统一管理,实现从验证到生产的平滑过渡。(150字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 253

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

细胞分裂java移植_胚胎移植前,先调理好你的子宫内膜!

原标题:胚胎移植前,先调理好你的子宫内膜!子宫是胎儿居住的“宫殿”,子宫内膜是宫殿中孕育生命的“温床”,是胚胎着床发育的地方,子宫内膜是否“肥沃”至关重要。如果子宫内膜厚度适宜,血流量丰富,而且细胞分裂良好,那么胚胎移植入子宫内的着床率是非常高的。反之,子宫内膜太薄、血流量不足、荷尔蒙分泌缺乏,胚胎就不容易着床。 比较适合胚胎着床的子宫内膜厚度为8-14mm,不过一般不同时期子宫内膜数值不同,如:...

weixin_32566515的博客 353

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Java流程控制练习

📋个人简介💖作者简介大家好,我是W_chuanqi,一个编程爱好者😀支持我💬愿你我共勉“没有什么比勇气更温文尔雅,没有什么比怯懦更冷酷无情!”✨✨✨。

W_chuanqi的博客 1921

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

算法:细胞分裂

package com.bxh.algorithms.OtherAlgorithms; /** * Created by bxh on 7/26/17. */ import java.util.Queue; import java.util.concurrent.LinkedBlockingDeque; /** * 一个细胞,每小时分裂成两个,分裂三次以后,本体会死掉。 * n...

u011250186的博客 1188

AI题解4

最简单的实现是直接计算 \\( 2^5 \\)。因此,第 n 次分裂后的细胞数量为 \\( 2^n \\)。直接计算 \\( 2^5 \\) 即可得到答案。- 第 5 次分裂:16 × 2 = 32 个。- 第 4 次分裂:8 × 2 = 16 个。- 1 个细胞,第 1 次分裂成 2 个,- 第 1 次分裂:1 × 2 = 2 个。- 第 2 次分裂:2 × 2 = 4 个。- 第 3 次分裂:4 × 2 = 8 个。5. 第 5 次:16 × 2 = 32。1. 第 1 次:1 × 2 = 2。

fanzhenle123的博客 554

十二、流程控制-循环

while语句中进行循环,以判断用户输入的密码是否正确,如果用户输入的密码不是“931567”,则让用户反复输入,直到输入正确的密码。当条件表达式的返回值为真时,则执行“{}”中的语句,当执行完“{}”中的语句后,重新判断条件表达式的返回值,直到表达式返回的结果为假时,退出循环。while语句与while语句的一个明显区别是,do…while语句也称条件判断语句,它的循环方式是利用一个条件来控制是否要继续反复执行这个语句。首先执行do{}里面的语句,在进行条件判断,成立的话就执行循环。

u012451051的博客 355

[luogu p1069] 细胞分裂

传送门 细胞分裂 题目描述 \(Hanks\)博士是\(BT\)(\(Bio-Tech\),生物技术) 领域的知名专家。现在,他正在为一个细胞实验做准备工作:培养细胞样本。 \(Hanks\)博士手里现在有\(N\)种细胞,编号从\(1-N\),一个第\(i\)种细胞经过\(1\)秒钟可以分裂为\(S_i\)个同种细胞(\(S_i\)为正整数)。现在他需要选取某种细胞的一个放进培养皿,让...

crab_xbc的博客 731

神奇的细胞(Java版)

Problem Description 我啸在杭州回来后,带回来一个神奇的细胞。 一开始只有一个细胞,每一小时分裂一次(细胞不会死亡,神奇的细胞),也就是说在第一个小时的时候只有一个细胞,第二个小时有两个细胞,第三个小时有四个细胞.....一直分裂下去,问当第n个小时的时候有多少细胞? Input   单组输入,每组输入只有一个整数n(1&lt;=n&lt;=20)。 Output ...

Fawkes Lee 要做大神! 677

设计模式学习总结(5) 原型模式

本系列主要记录设计模式的意图是什么,它要解决一个什么问题,什么时候可以使用它;它是如何解决的,掌握它的结构图,记住它的关键代码;能够想到至少两个它的应用实例,一个生活中的,一个软件中的;这个模式的优缺点是什么,其有哪些使用场景,在使用时要注意什么。 尊重作者,转载请注明晔阳的Bloghttp://blog.youkuaiyun.com/ 5.原型模式 意图:用原型实例指定创建对象的种类,并且通过

hacke2' Blog 2481

细胞分裂题--递归算法

细胞分裂题题目解析代码 题目 有一个细胞 每一个小时分裂一次,一次分裂一个子细胞,第三个小时后会死亡。那么n个小时之后有多少细胞。 解析 将细胞按不同时间分类的方法略显复杂,这里介绍另外一位大神的算法:链接 未开始计时之前,都是1个细胞, f(n) = 1, n <= 0 未开始有细胞死亡时,f(n) = 2 * n, n < 3 开始有细胞死亡时,f(n) = 2 * f(n - 1) - 死亡细胞数 f(3)时, f(0)的细胞死亡,死亡细胞数 = f(0) f(4)时, f(1)的细胞死亡

weixin_42809957的博客 2583

Java—神奇的细胞

Java—神奇的细胞 Description 我啸在杭州回来后,带回来一个神奇的细胞。 一开始只有一个细胞,每一小时分裂一次(细胞不会死亡,神奇的细胞),也就是说在第一个小时的时候只有一个细胞,第二个小时有两个细胞,第三个小时有四个细胞…一直分裂下去,问当第n个小时的时候有多少细胞? Input 单组输入,每组输入只有一个整数n(1<=n<=20)。 Output 输出一行,一个整数,即第n个小时的时候的细胞数量。 Sample Input 5 Output 16 import java.uti

qq_45885219的博客 284
下一篇: Springboot过滤xss
Time_Point
博客等级 码龄9年 0粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值