spark实训题 -- Scala基础编程【1】

目录

实训目的

实训1:编写函数过滤文本中的回文单词

1. 训练要点

2.需求说明

3.思路及步骤

 实训2:使用Scala编程输出杨辉三角

1. 训练要点

2.需求说明

3.思路及步骤

 实训3:用Scala编程求出100~999之间的所有水仙花数。


实训目的

( 1)掌握Scala的REPL使用。

(2)掌握Scala的Array、List、Map等创建与使用。

(3)掌握Scala循环与判断的使用。

( 4)掌握Scala函数式编程。


实训1:编写函数过滤文本中的回文单词

1. 训练要点

  1. 函数的定义。
  2. 方法的调用。

2.需求说明

    回文是指正向和逆向读起来相同的词。例如“mom”和“dad”。编写一个函数用来测试单词是否是回文,若是则打印出该单词。提示: String的revere方法在此处会很有用。

3.思路及步骤

( 1 )定义函数isPalindrom(word:String)。

(2)在丽数中判断单词正向与逆向是否样,若是则打印。

( 3 )测试函数。

实现源代码:

scala> def isPalindrom(word:String):Unit={

      val word2=word.reverse

        if(word==word2){

          println(word+"  is palindrom!")

        }

      }



scala> isPalindrom("aba")

运行结果截图:


 实训2:使用Scala编程输出杨辉三角

1. 训练要点

(1) Scala函数的运用。

(2) Scala 循环的使用。

2.需求说明

     杨辉三角(帕斯卡三角形)是二项式系数在三角形中的一种集合排列, 在我国南宋数学家杨辉于1261年所著的(详解九章算法》一书里就已经记载了。

一些基本的关系,如下所示:

(1)每个数字都是它上方两数之和。

(2)两侧最外围是由数字1组成。

(3)其余数则是其肩上两个数的和。

结合实际,运用Scala编程实现指定层杨辉三角的输出。

3.思路及步骤

    (1)定义一一个取值函数pascal, 得到指定行列的值。杨辉三角的性质决定了除左右两边等于1外,元素的值等于其肩上两数的和,即Value(row,column) = Value(rows,column-1)+Value(rows-1,column-1)。当行和列的值越来越小时达到终止条件。

(2)以行为分界,打印每个元素的值。

源代码:

[root@node1 scala]# vi test1.scala



object test {

  def main(args: Array[String]) {

    val a =Array.ofDim[Int](10,10)

    for(i<- 0 until a.length){

          a(i)(0)=1

          a(i)(i)=1

    }

    for(i <-2 until a.length ){

      for(j <-1 until a(i).length){

        a(i)(j)=a(i-1)(j-1)+a(i-1)(j)

      }

    }

    for(i <-0 until a.length){

      for(j <- 0 until a(i).length  if j<=i){

         print(a(i)(j)+"\t")

      }

      println()

    }

  }

}


[root@node1 scala]# scala test1.scala


运行结果截图:


 实训3:用Scala编程求出100~999之间的所有水仙花数。

    题目:水仙花数是指其个位、十位、百位3个数的立方和等于这个数本身,请用Scala编程求出100~999之间的所有水仙花数。

(1)、源代码

scala>def narcissus():Unit={

        for(number<-100 to 999){

        val a=number/100

        val b=number%100/10

        val c=number%100%10

        if(a*a*a+b*b*b+c*c*c==number){

          print(number+" ")

        }

      }

      }



scala>narcissus()

(2)、运行结果截图:

  • 8
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

⚆Pearl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值