1、一个数字如果为正数,则它的signum为1;如果是负数,则signum为-1;如果为0,则signum为0.编写一个函数来计算这个值
import scala.io.StdIn
object Example extends App {
println("请输入数字:")
val num =StdIn.readInt()
signum(num)
def signum(num : Int){
if (num > 0){
println(1)
}else if(num < 0) {
println(-1)
}else{
println(0)
}
}
}
2.针对下列Java循环编写一个Scala版本:
for(int i=10;i>=0;i–)System.out.println(i);
object Example extends App {
for (i <-0 to 10 reverse){
println(i)
}
}
3.编写一个过程countdown(n:Int),打印从n到0的数字
object Example extends App {
countdown(10)
def countdown(n : Int): Unit ={
for (i <- 0 to n reverse){
println(i)
}
}
}
4.编写一个for循环,计算字符串中所有字母的Unicode代码(toLong方法)的乘积。举例来说,"Hello"中所有字符串的乘积为9415087488L
object Example extends App {
var t :Long = 1
for(i <- "Hello"){
t = t * i.toLong
}
println(t)
}
5.同样是解决前一个练习的问题,请用StringOps的foreach方式解决
object Example extends App {
var t :Long = 1
"Hello".foreach(t *=_.toLong)
println(t)
}
6.编写一个函数product(s:String),计算字符串中所有字母的Unicode代码(toLong方法)的乘积
object Example extends App {
product("Hello")
def product(s : String): Unit ={
var t : Long = 1
for (i <- s){
t *= i.toLong
}
println(t)
}
}
7.把上个练习中的函数改成递归函数
object Example extends App {
val aa = product("Hello")
def product(s : String): Long ={
if (s.length == 1){
return s.charAt(0).toLong
}else{
s.take(1).charAt(0).toLong*product(s.drop(1))
}
}
println(aa)
}
8.编写函数计算
x
n
x^n
xn,其中n是整数,使用如下的递归定义:
(1)
x
n
=
x
∗
x
n
−
1
x^n=x*x^{n-1}
xn=x∗xn−1,如果n是正数的话
(2)
x
0
=
1
x^0=1
x0=1
(3)
x
n
=
1
/
x
−
n
x^n=1/x^{-n}
xn=1/x−n,如果n是负数的话
(4)不得使用return语句
object Example extends App {
val aa = product(-2,2)
def product(n : Int,x : Int): Double={
if (n > 0){
x*product(n-1,x)
}else if(n < 0) {
1/product(-n,x)
}else{
1
}
}
println(aa)
}
本文通过多个实例深入探讨Scala语言的基本语法和高级特性,包括条件判断、循环、递归函数及字符串操作等,旨在帮助读者理解并掌握Scala编程的核心概念。
432

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



