Scala编程题

1.题目:利用条件运算符的嵌套来完成此题:  学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用c表示。

object GradeTest {
  def main(args: Array[String]): Unit = {
    var a = 59.0
    if(a<0||a>100){
      println("对不起,您提供的考试成绩不合法")
    }else if(a>=90){
      println("该考生的考试成绩等级是:A等级")
    }else if(a>=60){
      println("该考生的考试成绩等级是:B等级")
    }else{
      println("该考生的考试成绩等级是:C等级")
    }
  }
}
输出:
该考生的考试成绩等级是:C等级

2.求sum=a+aa+aaa+...+aa..aa的值

object SunValue{
  def main(args: Array[String]): Unit = {
    //控制台获取数值
    println("请输入您要累加的值:")
    var i =StdIn.readInt();
    println("请输入要累加次数:")
    var l = StdIn.readInt()
    //定义总和初始值
    var sum =0;
    var num = i;
    for(d<-0 until l){
     sum+=num
      num = num*10+i
    }
    print("结果为"+sum)
  }
}
输出:
请输入您要累加的值:
2
请输入要累加次数:
2
结果为24

3.打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

object Numbers{
  def main(args: Array[String]): Unit = {
    for(i <- 100 until 1000){
      var onesPlace = i%10;//个位数
      var tensPlace = i/10 %10//十位数
      var hundresdsPlace = i / 100 //百位数
      if (i ==(Math.pow(onesPlace,3)+Math.pow(tensPlace,3)+Math.pow(hundresdsPlace,3)))
        println(i)
    }
  }
}
输出:
153
370
371
407

4.将list0中的每一个元素乘以10后加偶数取出来生成一个新的集合

object listMaps{
  def main(args: Array[String]): Unit = {

    var b =0
    val num=List(1,7,9,8,0,3,5,4,6,2)
    var nums = for{
      b <- num
      if b%2==0;
      if b>0
    }yield b*10
    print(nums)

  }
}
输出:
List(80, 40, 60, 20)

5.编写scala程序,完成以下功能:假设有整型变量x,判断x是否为偶数,若为偶数, 则在控制台上打印“输入的数值是偶数”。  无论x是否为偶数,最后都要在控制台上输出x的值

object evenNum{
  def main(args: Array[String]): Unit = {
    println("请输入数字")
    var sc = StdIn.readInt();
    var i=0
    if(i%2==0){
      println("输入的数值是偶数")
    }else{
      println("输入的数值不是偶数")

    }
  }
}
输出:
请输入数字
2
输入的数值是偶数

6.有两个整型变量x,y, 请在控制台上输出x与y中值较大的那个数。

object bigNum3{
  def main(args: Array[String]): Unit = {
    println("请输入第一个数字")
    var a =StdIn.readInt()
    println("请输入第二个数字")
    var b = StdIn.readInt()
    if (a<b){
      println("第二个数字值大:"+b)
    }else if(a>b){
      println("第一个数字值大:"+a)
    }else{
      println(a+"="+b)
    }
  }
}
输出:
请输入第一个数字
2
请输入第二个数字
6
第二个数字值大:6

7.计算1+2+3+…+100的和(提示利用while语句)

object SumWhile{
  def main(args: Array[String]): Unit = {
    var a = 0;
    var sum =0
    while(a<100){
      a=a+1
      sum=sum+a

    }
    println(sum)
  }
}
输出:
5050

8.计算从1到100的所有奇数相加(提示利用while语句)

object oddSumNumWhile{
  def main(args: Array[String]): Unit = {
    var a = 0;
    var sum = 0
    while (a < 100) {
      if(a%2!=0){
        sum+=a
      }
      a=a+1

    }
    println(sum)
  }
}
输出:
2500

9.计算从1到100的所有偶数相加(提示利用while语句)

object SumWhile2{
  def main(args: Array[String]): Unit = {
    var a = 0;
    var sum =0
    while(a<100){
      a=a+2
      sum=sum+a

    }
    println(sum)
  }
}
输出:
2550

10.计算1+2+3+…+100的和(提示利用do……while语句)

object doWhileSum{
  def main(args: Array[String]): Unit = {
    var a =0
    var sum = 0
    do{
      a=a+1
      sum=sum+a
    }while(a<100)
    println(sum)
  }
}
输出:
5050

11.计算1+2+3+…+100的和(提示利用for语句)

object sumFor{
  def main(args: Array[String]): Unit = {
    var a = 1
    var sum =0
    for(a<- 1 to 100){

      sum+=a

    }
    println(sum)
  }
}
输出:
5050

12.计算从1到100的所有奇数相加(提示利用for语句)

object oddSumNum{
  def main(args: Array[String]): Unit = {
    var a = 1
    var sum =0
    for(a<- 1 to 100){
      if(a%2==0){

      sum+=a
      }
    }
    println(sum)

  }
}
输出:
2550

13.计算从1到100的所有偶数相加(提示利用for语句)

object evenSumNum{
  def main(args: Array[String]): Unit = {
    var a = 1
    var sum =0
    for(a<- 1 to 100){
      if(a%2==1){
        sum+=a
      }
    }
    println(sum)

  }
}
输出:
2500

14.在控制台输入n,求n!的阶乘

object Factorial{
  def main(args: Array[String]): Unit = {
    println("请输入数字")
    var funs = StdIn.readInt()
    println("结果为")
    println(fun(funs))
    }
  def fun(num:Int): Int ={
    if(num<=1){
      return 1
    }
    return num*fun(num-1)

  }

}
输出:
请输入数字
5
结果为
120

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
 这本书绝不轻易放过每个知识点,全书包含有大量习题,要求你自己实现 Scala 标准库或者 Scalaz 中的既有功能。所以,当你读完本书,做完习题后,虽然你的应用开发能力并不会直接提升,但你会体会到构建函数式语言和框架时的难点和取舍,从而增进你的框架开发语言设计的能力。   ——ThoughtWorks Lead Consultant 杨博   这本书所讲授的,正是基于 Scala 的函数式编程基础。基于 Scheme、Haskell 等老牌函数式语言的传统教材的问题在于,相关语言的语法和思维方式与读者现有的知识体系迥异,容易造成较为陡峭的入门门槛。此外,由于这些语言本身的实际应用机会不多,初学者也难以在实战中获得宝贵的直觉和经验。而在 Scala 的帮助下,这本书并不要求你抛开现有的思维方式另起炉灶,它所做的更像是为你现有的思维方式添砖加瓦,从而令你如虎添翼。   ——Spark committer from Databricks 连城   尽管函数式编程在近十多年用得越来越多,但市面上介绍其高阶特性的书却并不多。这本书在这方面是个重要的补充,它不仅仅面向 Scala 程序员,同样面向用任何编程语言开发的程序员,只要你充满好奇心。   ——挖财网首席架构师 王宏江   “让你洞察计算的本质。”   ——Martin Odersky, Scala的作者   “Scala和Java8开发者的函数式编程指南!”   ——William E. Wheeler, TekSystems   “本书向你展示了提升Scala技能的方法和理念,它已超过‘更好的Java’。”   ——Fernando Dobladez, Code54   “里面的练习有些挑战,很有趣,对你在真实世界中使用它很有益。”   ——Chris Nauroth, Hortonworks   “边干边学,而非只是阅读。”   ——Douglas Alan、Eli和Edythe L. Broad,哈佛和麻省理工学院

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

lambda-小张

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

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

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

打赏作者

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

抵扣说明:

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

余额充值