【大数据开发】scala练习01

第一题

package day01

/**
 * 1.百钱百鸡: 一只母鸡5元,一只公鸡3元,一只小鸡1/3元。
 * 现在要用100元钱买100只鸡,列出所有的购买方案。
 */
object HomeWork1 {
  def main(args: Array[String]): Unit = {
    var n=0
    for (hen <- 0 to 20; rooster <- 0 to 33; poult <- 0 to 100;
         if ((hen*5+rooster*3+poult*1/3)==100 && (hen+rooster+poult)==100)){
        println("公鸡:" + hen)
        println("母鸡:" + rooster)
        println("小鸡:" + poult)
        println()
        n+=1
      }
    println(n)
  }
}

第二题

package day01

import scala.io.StdIn
import scala.util.control.Breaks.break

/**
 * 2.程序模拟: 预设一个用户名和密码,让用户从控制台输入用户名和密码登录,
 * 接收到用户的输入后,和预设的进行校验。如果成功,输出登录成功。
 * 如果失败,输出失败的详情。一个用户有3次失败的机会,3次失败后,程序结束
 */

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

    var num=0
    do {
      print("请输入用户名:")
      val userName: String = StdIn.readLine()
      print("请输入密码:")
      val passWord: String = StdIn.readLine()

      if (userName.isEmpty || passWord.isEmpty) {
        if(num == 2) {
          println("你没有机会了")
          break()
        } else {
          println("用户名或密码为空,请重新输入,你还有" + (2 - num) + "次机会")
          num += 1
        }
      } else if (userName.equals("meiguosheng") && passWord.equals("123456")) {
        println("登录成功")
        break
      } else {
        if(num == 2) {
          println("你没有机会了")
          break()
        }else {
          println("用户名或密码错误,重新输入,你还有" + (2 - num) + "次机会")
          num += 1
        }
      }
    } while (num < 3)
  }
}

第三题

package day01

import scala.io.StdIn

/**
 * 3.图形打印
 * 3.1
 * 第1行4个空格,1个*号
 * 第2行3个空格,2个*号
 * 第3行2个空格,3个*号
 * 第4行1个空格,4个*号
 * 第5行0个空格,5个*号
 *
 * 3.2
 * 每行输出5个字母,从A开始
 * 第1行0个空格,
 * 第2行1个空格,
 * 第3行2个空格,
 * 第4行3个空格,
 * 第5行4个空格,
 */

object HomeWork3 {

  def main(args:Array[String]): Unit = {
    task1()
    task2()

  }

  def task1():Unit = {
    val num = 5

    //row表示第几行
    for (row <- 1 to num) {
      //打印空格
      for (i <- 1 to (5-row)) {
        print(" ")
      }
      //打印*号
      for (j <- 1 to (2*row - 1)) {
        print("*")
      }
      println()
    }
  }

  def task2():Unit = {
    val num = 5
    var index = 65
    //row表示第几行
    for(row <- 1 to num) {
      //打印空格,第一行不打印空格
      for(i <- 2 to row){
        print(" ")
      }
      //打印字符
      for (j <- 1 to 5){
        print((index + j - 1).toChar)
      }
      index += 1
      println()
    }
  }
}

第四题

package day01

/**
 * 4.输出斐波那契数列的前50位
 * f(0)=0 f(1)=1 f(n)=f(n-1)+f(n-2)
 */

object HomeWork4 {
  def main(args: Array[String]): Unit = {
    for (n <- 0 to 49)
      println("第" + (n+1) + s"个: ${fibonacci(n)}")
  }
  
  def fibonacci(n: Int): Long={
    if (n==0) 0
    else if(n==1) 1
    else {
      fibonacci(n - 1) + fibonacci(n - 2)
    }
  }
}

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值