Chinaunix首页 | 论坛 | 博客
  • 博客访问: 637941
  • 博文数量: 233
  • 博客积分: 2221
  • 博客等级: 大尉
  • 技术积分: 3184
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-16 14:01
个人简介

瓜瓜派的瓜瓜

文章分类

全部博文(233)

文章存档

2013年(28)

2012年(197)

2011年(8)

分类: Java

2013-02-04 16:52:31

抽空继续做作业,时间不连续,进度有快有慢,各位看官,还请多多包涵啊。

1. 编写一个for循环,计算字符串中所有字母的Unicode代码的乘积。举例:“Hello”中所有字符的乘积是9415087488L
Ans:
scala> var m : BigInt = 1
m: BigInt = 1
 
scala> for (i <- "Hello") { m = m * i.toInt}
 
scala> println(m)
9415087488

2. 题目如上一题,但不用循环
Ans:
scala> "Hello".foldLeft(List[BigInt]())((b,a) => a :: b).reverse.reduce(_ * _)
res157: BigInt = 9415087488
or:
scala> "Hello".foldLeft(1L)(_ * _)
res158: Long = 9415087488

3. 编写一个函数product(s: String),计算上面的乘积
Ans:
scala> def product(s: String) = {
     | s.foldLeft(1L)(_ * _)
     | }
product: (s: String)Long
 
scala> product("Hello")
res1: Long = 9415087488

4. 用递归函数实现上面的乘积
Ans:
scala> def product(s: String) : BigInt = {
     |     if (s.length <= 0) 1
     |     else s.head.toInt * product(s.tail)
     | }
product: (s: String)BigInt
 
scala> product("Hello")
res1: BigInt = 9415087488


阅读(2149) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~