1.定义一个方法,该方法能够找出两个小数中的较小值并返回。在主方法中调用方法进行测试
object Recursion {
def main(args: Array[String]): Unit = {
println("请输入第一个数字")
var fun = StdIn.readInt()
println("请输入第二个数字")
var fun2 = StdIn.readInt()
println("较小值为:")
println(num(fun,fun2))
}
def num(i:Int,n:Int):Int={//返回值类型必须要有不能为空,会括号
if(i>n){
return n
}else{
return i
}
}
}
输出:
请输入第一个数字
2
请输入第二个数字
3
较小值为:
2
2.数字是有绝对值的,负数的绝对值是它本身取反,非负数的绝对值是它本身。 请定义一个方法,方法能够得到小数类型数字的绝对值并返回。请定义方法并测试。
object absoluteValue{
def main(args: Array[String]): Unit = {
var num:Double= -3.14;
println(number(num))
}
def number(num:Double):Double = {
if(num<0){
//如果数字是负数则取反
-num
}else{
//如果是非负数则返回本身
num
}
}
}
输出:
3.14
3.企业发放的奖金根据利润提成。利润低于或等于10万元时,奖金可提10%; 利润高于10万元,低于或等于20万元时,高于10万元的部分,可提成7.5%; 高于20万,低于或等于40万时,高于20万元的部分,可提成5%; 高于40万,低于或等于60万时,高于40万元的部分,可提成3%; 高于60万,低于或等于100万时,高于60万元的部分,可提成1.5%, 高于100万元时,超过100万元的部分按1%提成,在程序中设定一个变量为当月利润, 求应发放奖金总数?
object Profit {
def main(args: Array[String]): Unit = {
var bonus:Double = 0
var profit:Double=150000
if(profit<=100000){
bonus=profit*0.1
}else if (profit<=200000){
bonus=10000+(profit-100000)*0.075
}else if (profit<=400000){
bonus=17500+(profit-200000)*0.05
}else if (profit<=600000){
bonus=27500+(profit-400000)*0.03
}else if(profit<=1000000){
bonus=33500+(profit-600000)*0.015
}else{
bonus=36500+(profit-1000000)*0.01
}
println(s"发放奖金为 $bonus ¥")//格式化"s"
}
}
4.定义一个方法,通过键盘录入两个整数n和m。 n代表行数,m代表列数。 定义一个方法,方法的功能是打印n行m列的@符号. 执行效果如下:
object Recursion2{
def main(args: Array[String]): Unit = {
println("请输入行数")
var n = StdIn.readInt()
println("请输入列数:")
var m = StdIn.readInt()
number(n,m)
}
def number(i:Int,j:Int):Unit={
for(i<- 0 until i){
for(j<-0 until j){
print("@")
}
println()
}
}
}
输出:
请输入行数
2
请输入列数:
3
@@@
@@@
5.假设某员工今年的年薪是30000元,年薪的年增长率6%。 编写一个Java应用程序计算该员工10年后的年薪,并统计未来10年(从今年算起)总收入。
object Bouns2{
def main(args: Array[String]): Unit = {
var salary:Double = 30000.0
var sum :Double=30000.0
for(year<- 1 to 10){
salary=salary*(1+0.06)
sum = sum +salary
}
println("第十年后的年薪为:"+salary)
println("总收入" + sum)
}
}
输出:
第十年后的年薪为:53725.43089628564
总收入449149.27916771255
6.判断一个数字是否能被5和6同时整除(打印能被5和6整除), 或只能被5整除(打印能被5整除),或只能被6整除,(打印能被6整除), 不能被5或6整除,(打印不能被5或6整除)
object Divisible{
def main(args: Array[String]): Unit = {
println("请输入数字")
var n = StdIn.readInt()
if(n%5 == 0 && n%6 == 0){
println("打印能被5和6整除")
}else if(n%5 == 0 && n%6 != 0){
println("打印能被5整除")
}else if(n%5 != 0 && n%6 == 0){
println("打印能被6整除")
}else{
println("打印不能被5和6整除")
}
}
}
输出:
请输入数字
2
打印不能被5和6整除
7.输入一个年份,判断这个年份是否是闰年 ,世纪闰年需要考虑
object leapYear{
def main(args: Array[String]): Unit = {
println("请输入年份")
var leap=StdIn.readInt()
if( (leap%4==0 && leap % 100 != 0) || leap % 400==0){
println("你输入的是闰年")
}else{
println("你输入的不是闰年")
}
}
}
输出:
请输入年份
1900
你输入的不是闰年
8.输入三个整数x,y,z,请把这三个数由小到大输出
object number2{
def main(args: Array[String]): Unit = {
println("请输入第一个数字")
var x = StdIn.readInt()
println("请输入第二个数字")
var y = StdIn.readInt()
println("请输入第三个数字")
var z = StdIn.readInt()
var i =0//临时变量
if (x > y) {
i = y
y = x
x = i
}
if (x > z) {
i = z
z = x
x = i
}
if (y > z) {
i = z
z = y
y = i
}
println("从小到大排序后的结果:")
println(x+"<"+y+"<"+z)
}
}
输出:
请输入第一个数字
5
请输入第二个数字
4
请输入第三个数字
9
从小到大排序后的结果:
4<5<9
9.编写一个程序,计算邮局汇款的汇费。如果汇款金额小于100元, 汇费为一元,如果金额在100元与5000元之间,按1%收取汇费, 如果金额大于5000元,汇费为50元。 汇款金额由命令行输入.
object Remittance2{
def main(args: Array[String]): Unit = {
println("请输入汇款金额")
var fee = StdIn.readDouble()
var salary:Double =0
if(fee>0&&fee<100){
salary=1
}else if(fee<=5000){
salary=1+(fee-100)*0.01
}else{
salary=salary+50
}
println("你需要花费的汇费"+salary)
}
}
输出:
请输入汇款金额
4999
你需要花费的汇费49.99
10.在一个有8个整数(18,25,7,36,13,2,89,63)的数组中找出其中最大的数及其下标。
object Sort2 {
def main(args: Array[String]): Unit = {
var c = Array(18,25,7,36,13,2,89,63)
var max_value = c(0)
for (x<- 0 to c.length-1){
if(max_value < c(x)){
max_value=c(x)
}
}
println(c.length-1)
println("最大的数"+max_value)
}
}
输出:
7
最大的数89
11.给定一个有9个整数(1,6,2,3,9,4,5,7,8)的数组,先排序,然后输出排序后的数组的值。
object BUbbleSort {
def main(args: Array[String]): Unit = {
var arr = Array(1,6,2,3,9,4,5,7,8)
var tmp = 0
for (i <- 0 until arr.length - 1; j <- 0 until arr.length - 1 - i) {
if (arr(j) > arr(j + 1)) {
tmp = arr(j)
arr(j) = arr(j + 1)
arr(j + 1) = tmp
}
}
println(arr.toList)
}
}
输出:
List(1, 2, 3, 4, 5, 6, 7, 8, 9)
12.由命令行输入一个4位整数,求将该数反转以后的数,如原数为1234,反转后的数位4321
object reversa{
def main(args: Array[String]): Unit = {
println("输入一个4位整数")
var reversal = StdIn.readInt();
var thousands = reversal / 1000
var hundreds = reversal / 100 % 10
var tens = reversal / 10 % 10
var one = reversal % 10
println("反转的数为"+one+tens+hundreds+thousands)
}
}
输出:
输入一个4位整数
2146
反转的数为6412
13.分别使用for循环求1到100之间所有能被3整除的整数的和。
object number3{
def main(args: Array[String]): Unit = {
var a =1
var sum =0
for(a <- 1 to 100) {
if (a%3==0) {
sum = sum + a
}
}
println(sum)
}
}
输出:
1683
14.while循环求1到100之间所有能被3整除的整数的和
object number4{
def main(args: Array[String]): Unit = {
var a = 0
var sum =0
while (a<100){
if (a%3==0) {
sum = sum + a
}
a=a+1
}
println(sum)
}
}
输出:
1683
15.do……while循环求1到100之间所有能被3整除的整数的和
object number5{
def main(args: Array[String]): Unit = {
var a =0
var sum =0
do{
if (a%3==0) {
sum = sum + a
}
a=a+1
}while (a<100)
println(sum)
}
}
输出:
1683
16.编写一个程序,找出大于200的最小的质数
object PrimeNumber{
def main(args: Array[String]): Unit = {
var i = 201
var t = true
while(t){
var b =true
for(e <-2 to i/2){
if(i%e==0){
b=false
}
}
if(b==true){
println(i)
t=false
}
i+=1
}
}
}
输出:
211
17.使用Scala打印九九乘法表
for (i <- 1 to 9; j <- 1 to i) {
print(s"${i}*${j}=${i * j}\t")
if (i == j) println()
}
输出:
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
18.给定一个有9个整数(1,6,2,3,9,4,5,7,8)的数组,输出排序后的数组的值。(选择排序)
val array = Array(1,6,2,3,9,4,5,7,8)
for (i<- 0 until array.length-1){
var minIndex = i
for (j<- i until array.length-1){
if (array(minIndex)>array(j+1)){
minIndex = j+1
}
}
val tmp:Int = array(i)
array(i) = array(minIndex)
array(minIndex) = tmp
}
var k = 0
for(k <- 0 to array.length - 1){
print(array(k)+" ")
}
}
}
输出:
1 2 3 4 5 6 7 8 9