微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

实验一 初步掌握Scala程序设计

课程名称Spark大数据分析实验室名称                     
实验名称实验一 初步掌握Scala程序设计
指导老师成绩

一、实验任务及结果

1.可否定义一个sum函数呢?返回指定区间的值的和?例如,区间[1,4]的和为1+2+3+4=10返回指定区间值的平方的和呢?立方呢?

object Sum {
  def sum(x: Int, y: Int): Int = {
    var sum: Int = 0
    var i = 0
    for(i <- x to y ){
      sum  = sum + i
    }
    return  sum
  }

  def squareSum(x: Int, y: Int): Int = {
    var sum: Int = 0
    var i = 0
      for(i <- x to y ){
        sum  = sum + i*i
      }
    return  sum
  }

  def cubeSum(x:Int, y:Int ): Int = {
    var sum: Int = 0
    var i = 0
    for(i <- x to y ){
      sum  = sum + i*i*i
    }
    return  sum
  }
  def main(args: Array[String]): Unit = {
      println(sum(1,4),cubeSum(1,4), squareSum(1,4))
  }
}

在这里插入图片描述

2、定义一个gcd函数,计算两个数的最大公因数。

import scala.io.StdIn

object Gcd {
  def gcd(x:Int, y:Int): Int ={
      var a: Int = x
      var b: Int = y
    if(a % b == 0)
      return b
    else
      return gcd(b, a % b)
  }
  def main(args: Array[String]): Unit = {
    println("输入x:")
    val x:Int = StdIn.readInt()
    println("输入y:")
    val y:Int = StdIn.readInt()
    println("x,y的最大公因数是",gcd(x,y))
  }
}

在这里插入图片描述

3、scala实现杨辉三角。

object YH_triangle {
  def triangle(line:Int) = {
    var Arr = Array(1,0,0)
    var blank = line-1
      for (i <- 1 to line){
        for (k <- 0 to blank)
          printf(" ")
        blank -= 1
        if (blank<0) blank = 0
        val array = new Array[Int](i)
        array(0) = 1;  array(i-1) = 1;
        if (i>2){
          for (j<- 1 to i-2){
            array(j) = Arr(j-1) + Arr(j)
          }
        }
        for (k <- 0 until i){
          printf("%d ",array(k))
        }
        printf("\n")
        Arr = array
      }
  }
  def main(args: Array[String]): Unit = {
    triangle(5)
  }
}

在这里插入图片描述

二、实验总结及问题

1、学会使用什么做什么事情;
学会使用scala基本语法
2、在实验过程中遇到了什么问题?是如何解决的?

3、还有什么问题尚未解决?可能是什么原因导致的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐