课程名称 | 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、还有什么问题尚未解决?可能是什么原因导致的。
无