• 携程校招——携程海洋馆的海豚小宝宝(C++)


    ⭐ 文章链接: www.mengyingjie.com/archives/37/ ⭐

    携程海洋馆的海豚小宝宝

    题目描述:

    携程海洋馆中有 n 只萌萌的小海豚,初始均为 0 岁,每只小海豚的寿命是 m 岁,

    且这些小海豚会在 birthYear[i] 这些年份生产出一位宝宝海豚(1 <= birthYear[i] <= m),每位宝宝海豚刚出生为 0 岁。

    问 x 年时,携程海洋馆有多少只小海豚?

    输入

    n(初始海豚数)

    m(海豚寿命)

    海豚生宝宝的年份数量(假设为p)

    海豚生宝宝的年份1

    ...

    海豚生宝宝的年份p

    x(几年后)

    输出

    x年后,共有多少只小海豚

    样例输入

    5
    5
    2
    2
    4
    5

    样例输出

    20

    代码

    #include <iostream>
    using namespace std;
    
    
    int main()
    {
        //n 海豚,海豚寿命m,海豚生宝宝的年份数量p,x年后
        int n, m, p, x;
        //n1表示现存的海豚,n2表示一共存在过的海豚包含死去的,由此定义数组大小
        int n1,n2;
        //arr2表示海豚来到世上第多少年,死去的海豚为-1,定义足够大来存放
        int arr2[99999];
        cin >> n >> m >> p;
        n1 = n2 = n ;
        //arr1来存放生孩子的年份
        int arr1[p];
        //输入生孩子的年份
        for(int i = 0; i < p; i++){
            cin >> arr1[i];
        }
        cin >> x;
        //初始化现在海豚的来到世上的第几年,初始化为1,表示是第一年
        for(int i = 0; i < n; i++){
            arr2[i] = 1;
        }
        //进入年份循环,循环x次,表示过去x年
        for(int i = 1; i <= x; i++){
            //每一年循环一边海豚的年份
            for(int j = 0; j < n2; j++){
                //如果海豚年份为-1,表示已经去世
                if(arr2[j] == -1)continue;
                //判断词海豚是否在生孩子的年份
                for(int k = 0; k < p; k++){
                    //如果是
                    if(arr2[j] == arr1[k]){
                        n1++;
                        n2++;
                        arr2[n2-1] = 0;
                    }
                }
                //寿命到了,置为-1,因为初始年龄为0,所以年龄等于存在的年份-1.
                if(arr2[j] - 1 == m){
                    n1--;
                    arr2[j] = -1;
                }
                arr2[j]++;
            }
        }
        cout << n1 << endl;
        return 0 ;
    }
    
    

    遇到此类问题,但看了文章还是未解决,
    评论或加 QQ:781378815

  • 相关阅读:
    杭电 1176 免费馅饼
    IE 8 浏览器 F12 调试功能无法使用
    SqlServer 经常使用分页方法总结
    cocos2d-x 2.0下怎样让BOX2D DEBUG DRAW的方法笔记
    在DIV中自己主动换行
    linux之SQL语句简明教程---主键,外来键
    java数据库连接池技术简单使用
    Windows和linux双系统——改动默认启动顺序
    程序员实用的 MySQL sql 语句
    android 多项对话框
  • 原文地址:https://www.cnblogs.com/mengyingjie/p/12640334.html
Copyright © 2020-2023  润新知