zoukankan      html  css  js  c++  java
  • 去哪儿笔试羊生羊问题

    题目:
    最开始有1只母羊,母羊在固定的N0,N1,N2....Ni年生1只母羊,母羊在p年死去,如果p=Ni,则先生羊,再死去,计算m年后还有多少只羊。

    输入示例:

    2 4(母羊在第2年和第4年生产)

    5(母羊在第5年死去)

    10(10年后还有多少只羊)

    输出示例:

    47

    解题思路:将羊存入数组,数组项的值就是羊的年龄,通过遍历数组来判断每只羊是否生产,是否死亡,最后输出数组长度既m年后羊的总数。
    JavaScript

    var string = prompt();
    var p = parseInt(prompt());
    var year = parseInt(prompt());
    var Ni = new Array();
    Ni = string.split(' ');
    for (var i = 0; i < Ni.length; i++) {
    	Ni[i] = parseInt(Ni[i]);
    }
    var Sheep = new Array();
    Sheep[0] = 0;
    for (var i = 1; i <= year; i++) {
    	length = Sheep.length;
    	for (var j = 0; j < length; j++) {
    		Sheep[j]++;
    		if (Ni.indexOf(Sheep[j]) != -1) {
    			Sheep.push(1);
    		}
    		if (Sheep[j] == p) {
    			Sheep.splice(j, 1);
    			length--;
    			j--;
    		}
    	}
    }
    console.log(Sheep.length);
    

    总结:题不是很难,但是最开始做的时候想的太复杂了,想的是用对象来存储每只羊的属性,然后再把对象存入数组,通过遍历数组来对每只羊的属性进行修改,发现太麻烦,而且会占用不必要的内存。最后简化到一个简单的一维数组就能解决,不过要注意数组不断变化过程中下标和数组长度都在变化。

  • 相关阅读:
    sonarqube添加C和C++语言
    sonarqube代码质量分析神器安装和使用
    sonarqube8.8汉化教程
    sonarqube代码分析平台踩坑指南
    解决Windows下PowerShell无法进入Python虚拟环境
    人工智能识别图片入门
    Python深拷贝和浅拷贝解读
    白嫖微软Azure12个月服务器
    Jmeter分布式压测
    Python+Appium实现自动抢微信红包
  • 原文地址:https://www.cnblogs.com/tanwm/p/7577249.html
Copyright © 2011-2022 走看看