codewars练习(javascript)-2021/4/12

该博客记录了2021年4月12日的Codewars JavaScript练习。包含两道题,一是‘Easy wallpaper’,需根据房间尺寸计算所需壁纸长度;二是‘Rainfall’,涉及计算平均降雨量和降雨量方差。还给出了GitHub地址用于记录习题。

codewars-js练习

2021/4/12

github 地址

my github地址,上面有做的习题记录,不断更新…

【1】<7kyu>【Easy wallpaper】

约翰知道这个长方形的房间有长l米,宽w米,高h米。他想买的卷的标准宽度是52厘米。一卷的长度是10米。然而,他记住,最好有一个额外长度的壁纸在手,以防错误或计算错误,所以他想买一个比他所需要的长度大15%的长度。

example

6.3, 4.5, 3.29// "sixteen"

solution

<script type="text/javascript">
	function wallpaper(l, w, h) {
		console.log(l,w,h)
		numbers = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve","thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen", "twenty"]
		var roll = 5.2;
	    var buffer = 1.15;;
	    var need = (l*h)*2 + (w*h)*2;
	    return numbers[Math.ceil(need/roll * buffer)];
	}
	// 验证
	console.log(wallpaper(6.3, 4.5, 3.29));// "sixteen"
	console.log(wallpaper(7.8, 2.9, 3.29));// "sixteen"
</script>
【2】<6kyu>【Rainfall】

函数:mean(town, string)应该返回town和字符串data或data1(在R和Julia中,这个函数被称为avg)的平均降雨量。

函数:variance(town,string)应该返回town和字符串data或data1的降雨量的方差。

方差:(每个数减去平均数)的平方的和除以总数

example

mean("London", data), 51.19(9999999999996) 
variance("London", data), 57.42(833333333374)

solution

<script type="text/javascript">
	//匹配返回所有的数值
	function number(town,strng){
		var arr = strng.split('\n');
		// console.log(arr)
		eval("var re = /" + town + "/;");
		var re1 = /[1-9]\d*\.\d*|0\.\d*[1-9]\d*/g;
		for(var i=0;i<arr.length;i++){
			if(re.test(arr[i])){
				var num = arr[i].match(re1);
				num = num.map(Number);
				// console.log(num)
			}
		}
		return num;
	}
	// 计算平均数
	function mean(town, strng) {
		num = number(town,strng);
		var sum = num.reduce(function(sum,temp){
            return sum + temp;
        }) 
        return sum / (num.length);
	}
	// 计算方差
	function variance(town, strng) {
		num = number(town,strng);
		average = mean(town,strng);
		var sum = 0;
		for(var i=0;i<num.length;i++){
			sum = sum + Math.pow((num[i] - average),2);
		}
        return sum / (num.length);
	}

	// 验证
	const data = 
     "Rome:Jan 81.2,Feb 63.2,Mar 70.3,Apr 55.7,May 53.0,Jun 36.4,Jul 17.5,Aug 27.5,Sep 60.9,Oct 117.7,Nov 111.0,Dec 97.9" + "\n" +
     "London:Jan 48.0,Feb 38.9,Mar 39.9,Apr 42.2,May 47.3,Jun 52.1,Jul 59.5,Aug 57.2,Sep 55.4,Oct 62.0,Nov 59.0,Dec 52.9" + "\n" +
     "Paris:Jan 182.3,Feb 120.6,Mar 158.1,Apr 204.9,May 323.1,Jun 300.5,Jul 236.8,Aug 192.9,Sep 66.3,Oct 63.3,Nov 83.2,Dec 154.7" + "\n" +
     "NY:Jan 108.7,Feb 101.8,Mar 131.9,Apr 93.5,May 98.8,Jun 93.6,Jul 102.2,Aug 131.8,Sep 92.0,Oct 82.3,Nov 107.8,Dec 94.2" + "\n" +
     "Vancouver:Jan 145.7,Feb 121.4,Mar 102.3,Apr 69.2,May 55.8,Jun 47.1,Jul 31.3,Aug 37.0,Sep 59.6,Oct 116.3,Nov 154.6,Dec 171.5" + "\n" +
     "Sydney:Jan 103.4,Feb 111.0,Mar 131.3,Apr 129.7,May 123.0,Jun 129.2,Jul 102.8,Aug 80.3,Sep 69.3,Oct 82.6,Nov 81.4,Dec 78.2" + "\n" +
     "Bangkok:Jan 10.6,Feb 28.2,Mar 30.7,Apr 71.8,May 189.4,Jun 151.7,Jul 158.2,Aug 187.0,Sep 319.9,Oct 230.8,Nov 57.3,Dec 9.4" + "\n" +
     "Tokyo:Jan 49.9,Feb 71.5,Mar 106.4,Apr 129.2,May 144.0,Jun 176.0,Jul 135.6,Aug 148.5,Sep 216.4,Oct 194.1,Nov 95.6,Dec 54.4" + "\n" +
     "Beijing:Jan 3.9,Feb 4.7,Mar 8.2,Apr 18.4,May 33.0,Jun 78.1,Jul 224.3,Aug 170.0,Sep 58.4,Oct 18.0,Nov 9.3,Dec 2.7" + "\n" +
     "Lima:Jan 1.2,Feb 0.9,Mar 0.7,Apr 0.4,May 0.6,Jun 1.8,Jul 4.4,Aug 3.1,Sep 3.3,Oct 1.7,Nov 0.5,Dec 0.7";

	console.log(mean("Beijing", data));// 52.416666666666664
	console.log(variance("Beijing", data));//4808.37138888889
</script>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值