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

被折叠的 条评论
为什么被折叠?



