• 去哪儿笔试羊生羊问题


    题目:
    最开始有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);
    

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

  • 相关阅读:
    union all 与order by的连用
    oracle--trunc与to_char的区别
    oracle函数--trunc
    大公司能给你什么
    要么忍要么滚
    scp报错:not a regular file,解决方法:加参数 -r
    hive中的一种假NULL现象
    使用Python scikit-learn 库实现神经网络算法
    随机梯度下降算法求解SVM
    机器学习算法--svm实战
  • 原文地址:https://www.cnblogs.com/tanwm/p/7577249.html
Copyright © 2020-2023  润新知