package com.sunyong
//房间有100盏灯编号从1到100默认是关着的,房间外有100个人编号也从1到100,这100个人依次进入房间,//若房间的灯的编号是人的编号的倍数,这个人就将灯的状态改变,问最后有哪些灯是开着的
object deng2 {
def main(args: Array[String]): Unit ={//灯(i,j) i 1-100 j true或false
var deng=(1 to 100).toArray.map(x=>(x,false))//人 1-100
var ren =(1 to 100).toArray
ren.foreach(x=>{for(y <-0 to deng.length-1){if(deng(y)._1%x==0)deng(y)=(deng(y)._1,!deng(y)._2)}})//灯的编号应该为所有能开方的数
deng.filter(x=>x._2==true).foreach(println )}}
package com.sunyong
import scala.collection.mutable.{ArrayBuffer, ListBuffer}//将一些整数放入数组中,这些整数是:第一个整数是0-100之间的随机整数,//第二个整数是0到第一个整数之间的随机数,第三个数是0到第二个整数之间的随机数// ...直到最后一个数字是0,打印这个数组
object shuzu6 {
def main(args: Array[String]): Unit ={
var arr =newArrayBuffer[Int]
arr.append((math.random*100).toInt)while(arr.last!=0){
arr.append((math.random*arr.last).toInt)}
arr.foreach(println)}}
7.定义一个长度为10的字符数组,随机字符0-9 a-z A-Z 放入数组,打印数组
package com.sunyong
import scala.collection.mutable.ArrayBuffer
//定义一个长度为10的字符数组,随机字符0-9 a-z A-Z 放入数组,打印数组
object shuzu7 {
def main(args: Array[String]): Unit ={
val chars =newArrayBuffer[Char]
val num =('0'.toInt to '9'.toInt).toArray.map(x=>x.toChar)
val lower =('a'.toInt to 'z'.toInt ).toArray.map(x=>x.toChar)
val upper =('A'.toInt to 'Z'.toInt ).toArray.map(x=>x.toChar)
val char= num ++ lower ++ upper
for(i<-1 to 10){chars.append(char((math.random*char.length).toInt))}
chars.foreach(println)}}
package com.sunyong
//约瑟夫环:100个人围成一个环,从第一个开始报数,报1,2,3, 1,2,3 ...//报数为3的人出去,一致不停的报数,直到剩下一个人,求这个人最开始的位置//解题关键-->每轮下标余3的全部删除
object shuzu8 {
def main(args: Array[String]): Unit ={// 1-100编号为这100个人
var num =(1 to 100).toBuffer
//余3成环最后会剩2个人while(num.length>2){//删除前数组长度
var len = num.length
println("原数组长度:"+len)
num.foreach(x=>print(x+" "))//进行赋值准备过滤for(i <-1 to num.length){if(i%3==0){num(i-1)=999}}//过滤 删除
num = num.filter(x=>x!=999)println()println("删除后长度:"+num.length)
num.foreach(x=>print(x+" "))println()//成环
num = num.drop(num.length-len%3)++num.dropRight(len%3)println("成环后")
num.foreach(x=>print(x+" "))println()}//最后剩下两个人成环只会剩下第二个人
num.drop(1).foreach(println)}}