题目描述

母牛从3 -7 岁初每年会产生1头小牛,10岁以后死亡(10岁存活)。假设初始有1投刚出生的母牛,请问第n年有多少头牛?(从第一年起计数)

注:第三年初会出生 第一头母牛,故第三年有两头母牛。

第五年初,第三年出生的母牛会生产,故第五年有五头母牛。

岁数是虚数

输入输出

  • 输入年数n
  • 输出牛数

第一年有1头牛
第二年有1头牛
第三年将出生一头牛,故有2头牛
第四年将出生一头牛,故有3头牛
第五年…,故有5头牛
第12年…,故有123头牛

思路

  • 创建一个牛的对象,属性只有年龄
  • 创建一个集合类,用来存放牛对象
  • 遍历这个集合
  • 判断牛是否生育,可以的话就再集合中加入一个对象
  • 判断牛是否死亡,死亡就从集合中移除,否则年龄加一
  • 输出集合中对象的数目

踩过的坑

  • 遍历集合时不要用迭代器,否则会报修改异常
    java.util.ConcurrentModificationException

代码

package com.xp;
import java.util.*;public class Main {public static void main(String[] args) {//输入所要计算的年Scanner sc = new Scanner(System.in);//测试用 存放每只牛的年龄List<Integer> rm = new ArrayList<>();//定义一个集合存放牛的数量List<Animal> m = new ArrayList<>();m.add(new Animal(1));//判断查询哪一年的数量int n = sc.nextInt();for(int i = 1;i<= n;i++){for(int j = 0 ;j < m.size();j++){Animal animal = m.get(j);//看看牛是否可以生育if(animal.getAge()>= 3 && animal.getAge()<=7){m.add(new Animal(1));}//判断牛是否死亡if(animal.getAge()==10){m.remove(j);}else {//年龄加animal.setAge(animal.getAge() + 1);}}rm.add(m.size());//测试用输出当年牛的年龄
//            if(i==n){//                Iterator it = m.iterator();
//                while (it.hasNext()) {//                    Animal animal = (Animal)it.next();
//                    System.out.println(animal.getAge()-1);
//                }
//            }}//输出牛的数量System.out.println(m.size());}}
//定义母牛这个类class Animal{private int age;public Animal(int age) {this.age = age;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}

算法编程(Java)#母牛生小牛的问题【字节】相关推荐

  1. 算法练习day15——190403(简介、求n!、汉诺塔、打印字符串的子序列、打印字符串的全排列、母牛生小牛、最小路径和、累加和是否达到给定值)

    1. 简介 动态规划是为了优化暴力尝试的. 2. 求n! 2.1 一般思路 public static long getFactorial2(int n) {long result = 1L;for ...

  2. 有一头母牛从第四年php,递归求解母牛生小牛问题

    母牛生小牛 Problem 设有一头小母牛,从出生第四年起每年生一头小母牛,按此规律,第N年时有几头母牛? Input 本题有多组数据.每组数据只有一个整数N,独占一行.(1≤N≤50) Output ...

  3. php 大牛生小牛,C#算法之关于大牛生小牛的问题

    本文实例讲述了C#算法之关于大牛生小牛的问题.分享给大家供大家参考.具体分析如下: 问题: 一只刚出生的小牛,4年后生一只小牛,以后每年生一只.现有一只刚出生的小牛,问20年后共有牛多少只? 刚开始觉 ...

  4. 青蛙跳台(含变种)及汉诺塔递归,母牛生小牛

    青蛙跳台(含变种)及汉诺塔递归,母牛生小牛 文章目录 青蛙跳台(含变种)及汉诺塔递归,母牛生小牛 #define _CRT_SECURE_NO_WARNINGS #include<Windows ...

  5. 关于c++中的一个母牛生小牛的问题详细解答与体会

    近来我们这些刚学c++的菜鸟不太懂得母牛生小牛的问题,我查了查,最后有简明表达了自己的两句理解性语言,希望和我一样的同学们能过更好的理解-- #include   <iostream>   ...

  6. C语言 母牛生小牛问题 多组测试数据

    题目描述: 有一头母牛,它每年年初生一头小母牛.每头小母牛从第四个年头开始,每年年初也生一头小母牛.请编程实现在第n年的时候,共有多少头母牛? 输入: 输入数据由多个测试实例组成,每个测试实例占一行, ...

  7. java 牛生小牛_牛生小牛的递归算法

    //关于牛的算法 //算法概述:设牛寿命无限 4年成年可以生小牛 依次类推求n年后牛的数量 //算法:用一个数组cow[4] cow[0]为成年牛 cow[1]为一年牛 cow[2]为两年牛 cow[ ...

  8. c语言母牛生小牛程序框图,C语言母牛问题

    一个农场有头母牛,现在母牛才一岁,要到四岁才能生小牛,四岁之后,每年生一头小牛.假设每次生的都是母牛,并且也遵守4年才能生育并生母牛的原则,并且无死亡,请问N年后共有过少头牛? 看到这个题目的时候 猛 ...

  9. 母牛生母牛,母牛生小牛。。。

    小母牛生母牛 描述 某老头家有只神奇的小母牛, 小母牛单性繁殖,从4岁起就开始生崽 而且每次生出的都是母牛, 于是母牛生小母牛,小母牛生小小母牛的漫漫长路就开始了(而且没有一头牛会死) 问 n 年之后 ...

最新文章

  1. 经典贪心法:时间序列问题及其全局最优性证明
  2. 就是把努力涂抹在人生的画卷上
  3. 【框架】[Spring]XML配置实现AOP拦截-切点:JdkRegexpMethodPointcut
  4. 从行驶的车上向上抛球,球真的会回到原地吗?
  5. Android一个自定义的进度环:ProgressChart
  6. 无法确定域的标识_标识标牌设计的基本要求:虽然是基本要求,你未必也都知道哦...
  7. 算法笔记_031:计算中值和选择问题(Java)
  8. 手机自动化测试:Appium源码分析之跟踪代码分析四 5
  9. php dom对象,JavaScript_JavaScript DOM 对象深入了解,什么叫DOM,DOM是文档对象模型( - phpStudy...
  10. oracle top 5 timed events,oracle gcr sleep in the Top Timed Events in report
  11. 难道是我洞悉了CSDN网站订阅专栏收益的秘密?带你看看网站专栏一天营收几何?
  12. html圆角周角代码,CSS3实现DIV圆角效果完整代码
  13. Opencv系列1_opencv对单张DCM文件的读取并显示
  14. 微信小程序使用赞赏码功能
  15. 钛资本研究院:保险科技行业现状及趋势分析
  16. 中关村-DIY之笔记本做wifi热点供手机无线上网
  17. 微软面试题 博弈论 经典案例 (参考答案)
  18. 使用uiautomatorviewer.bat抓取页面是显示Error obtaining Ul hierarchy Reason
  19. 手把手教你安装虚拟机16
  20. 10.1 快乐,自费送几本豆瓣9.0高分书籍

热门文章

  1. 李子柒——成功的网络视频制作人及其营销分析
  2. 常微分方程的数值解-欧拉、四阶龙格-库塔法等C语言
  3. 高级Magento模型 EAV
  4. VGA接口和HDMI接口有什么区别 哪个好
  5. CTFshow_萌新(密码)
  6. 使用weixin4j开发微信JS-SDK微信配置接口实现分享朋友圈
  7. 仪表板展示|DataEase可视化数据分析工具中的仪表板跳转和联动设置
  8. 单片机最小系统实现LED灯闪烁
  9. java writeint_java的writeInt() 函数怎么用啊
  10. anti-SG 游戏