scala实现1-100内的奇数的平方和

在学习Scala时,作者遇到了一个QQ群的加入挑战:在50个字符内计算1-100内奇数的平方和。文章记录了四种不同的实现方法,包括使用循环和集合操作。尽管初次接触,作者通过谷歌找到了解决方案,并强调了学习编程要多实践,不断积累经验。

  为了学习scala,在网上加了个QQ群,群主非要做道题才能加入。题目如标题,要求必须在50个字符内,因为添加好友的验证框就能输入50个字符,于是乎,实现如下:


1.方法一

1 to 100).filter(x=>(x%2)!=0).map(x =>x*x).foldLeft(0)(_+_)

这里写图片描述

  如图,这个是可以计算出来,但超过了50个字符。没法输入完全,自然被拒了。

2.方法二

这里写图片描述

  忧桑,还是超过了50个字符。依然被拒。额,接触这个没多久,API也不是很熟悉,于是乎,就……谷歌了下下。还真有,如下:

3. 方法三

这里写图片描述

  这个也符合长度要求,那个by没用过的话估计不知道,就是以步长2来取集合里的元素。这个相比于第四个,更通俗易懂一些。

4. 方法四

这里写图片描述

  这个满足长度要求了,但是你是不是有些看不太明白i%2*i*i 。这个其实比较讨巧,因为前面那个取余,如能整除2,则为0,如不能则为1。所以相当于是去掉了偶数部分。

  同样的功能,往往会有很多不同的实现方法,作为初学者,就先求实现了。不过这些技巧,还是有启发性的。多学多练!!!

  纪念一下这个难加的群,多多汲取经验吧。

参考:http://www.oschina.net/code/snippet_181985_44918

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值