-
设计方法,计算斐波那契数列指定位的数字(递归)
object HomeWork1 { def main(args: Array[String]): Unit = { for (num <- 0 until 50){ println(fib(num)) } } def fib(num:Long): Long ={ if (num==0) 0 else if (num==1) 1 else fib(num-1)+fib(num-2) } }
-
设计方法,计算一个数字的二进制原码
-
基础版:直接计算出原码即可,不用考虑正负数,不用考虑补位
-
进阶版:不够8位,补齐8位;不够16位,补齐16位;不够32位,补齐32位;不够64位,补齐64位。最大考虑到64位即可。
-
进阶版2:考虑负数的情况
package day02 //进阶版 import scala.collection.mutable.ArrayBuffer /** * 设计方法,计算一个数字的二进制原码 * * 1. 基础版:直接计算出原码即可,不用考虑正负数,不用考虑补位 * * 2. 进阶版:不够8位,补齐8位;不够16位,补齐16位;不够32位,补齐32位;不够64位,补齐64位。最大考虑到64位即可。 * * 3. 进阶版2:考虑负数的情况 * */ object HomeWork2 { def main(args: Array[String]): Unit = { func(-1) } def func(n:Long): Unit ={ val ab = new ArrayBuffer[Long]() var num = 0L var flag=false if (n<0) num = -n else num = n while (num != 0){ val remainder = num%2 ab.append(remainder) num = num/2 } if (n<0) { print("1") flag=true }else flag=false outPut(ab,flag) } def outPut(ab: ArrayBuffer[Long],flag:Boolean): Unit ={ var len=ab.length var n1=0 var n2=0 var n3=0 var n4=0 //是正数 if (!flag) { n1=8 n2=16 n3=32 n4=64 } else { n1=7 n2=15 n3=31 n4=63 } if (ab.length<n1){ while (len<n1) { print("0") len+=1 } }else if(ab.length<n2){ while (len<n2) { print("0") len+=1 } }else if(ab.length<n3){ while (len<n3) { print("0") len+=1 } }else if(ab.length<n4){ while (len<n4) { print("0") len+=1 } } println(ab.mkString.reverse) } }
-
-
设计一个方法,对一个数组进行升序排序(自己写排序算法)
package day02 /** * 3.设计一个方法,对一个数组进行升序排序(自己写排序算法) */ object HomeWork3 { def main(args: Array[String]): Unit = { val arr = Array[Int](10,8,7,12,6) quickSort(arr,0,arr.length-1) println(arr.mkString(",")) } def quickSort(arr: Array[Int],begin:Int,end:Int):Unit = { if (begin<end){ val temp = arr(begin) var i = begin var j = end while(i<j){ while(i<j && arr(j)>temp) { j-=1 } arr(i) = arr(j) while(i<j && arr(i)<=temp) { i+=1 } arr(j) = arr(i) } arr(i) = temp quickSort(arr,begin,i-1) quickSort(arr,i+1,end) } } }
-
从控制台输入一个字符串,统计每一个字符出现的次数
例如: 输入: helloworld 输出: h(1)e(1)l(3)o(2)w(1)r(1)d(1)
package day02 import scala.collection.mutable import scala.collection.mutable.ArrayBuffer import scala.reflect.io.NoAbstractFile.toCharArray /** * 4. 从控制台输入一个字符串,统计每一个字符出现的次数 * 例如: * 输入: helloworld * 输出: h(1)e(1)l(3)o(2)w(1)r(1)d(1) */ object HomeWork4 { def main(args: Array[String]): Unit = { wordCount("hello world") } def wordCount(str: String): Unit = { val ch = str.toCharArray val map: mutable.Map[Char, Int] = mutable.Map() for (i <- 0 until ch.length){ if (map.contains(ch(i))) { map(ch(i))=map.getOrElse(ch(i),0)+1 } else map(ch(i))=1 } for((k,v) <- map){ print(k+"(" + v + ")") } } }
-
随机生成10个不重复的[50, 100]范围的数字,存入一个可变数组中
package day02
import scala.collection.mutable.ArrayBuffer
import scala.util.Random
/**
* 5. 随机生成10个不重复的[50, 100]范围的数字,存入一个可变数组中
*/
object HomeWork5 {
def main(args: Array[String]): Unit = {
val ab = ArrayBuffer[Int]()
val random = new Random()
var time = 10
do{
val num = random.nextInt(51)+50
if (!ab.contains(num)) {
ab.append(num)
}
time -= 1
}while(time>0)
print(ab.mkString(","))
}
}