本文共 6050 字,大约阅读时间需要 20 分钟。
package com.sunyongobject Baiqianji { def main(args: Array[String]): Unit = { var count=0 for(i<-0 to 20){ for (j <-0 to 33){ for (k <- 0 to 100){ if(i+k+j==100 && i*15+j*9+k==300){ count+=1 println("公鸡:" + i + "只," + "母鸡:" + j + "只," + "小鸡:" + k + "只") } } } } println("总共有" + count + "中购买方式!") }}
package com.sunyong//鸡兔同笼。鸡兔一共有50只,脚一共有160只,问鸡和兔各多少只?要求鸡兔至少一样一只object JiTu { def main(args: Array[String]): Unit = { //鸡两只脚 兔子四只脚 一起50只 160只脚 var count=0 for (i<-0 to 50){ for (j<-0 to 50){ if(i+j==50 && i*2+j*4==160){ count+=1 println("鸡:" + i + "只," + "兔子:" + j + "只") } } } println("总共有" + count + "种方式!") }}
package com.sunyong//公鸡2文,母鸡1文,小鸡半文,每种至少一只,100文买100只鸡有多少种可能object Ji { def main(args: Array[String]): Unit = { var count = 0 for (i<-1 to 50){ for(j<-1 to 100){ for(k<- 1 to 200){ if (i+k+j==100 && i*4+j*2+k==200) { //注意不能直接k/3 /符号是取商 count += 1 println("公鸡:" + i + "只," + "母鸡:" + j + "只," + "小鸡:" + k + "只") } } } } println ("总共有" + count + "中购买方式!") }}
package com.sunyongimport java.util.Calendarimport scala.io.StdInobject runnian { def main(args: Array[String]): Unit = { val calendar = Calendar.getInstance() println("请输入一个正整数:") var year = StdIn.readInt() //判断2月份有多少天 //设置时间为2月27号 月份0-11 calendar.set(year,1,27) //加2天为 可能 2月份29 3月 1 calendar.add(Calendar.DAY_OF_MONTH,2) if(calendar.get(Calendar.DAY_OF_MONTH)==29){ println(year+"年是闰年") }else{ println(year+"年不是闰年") } }}
package com.sunyongimport scala.io.StdIn/** 随机生成一个int型一维数组,从控制台输入一个数值,遍历数组查找,* 如果找到了,打印出该数在数组中的位置,* 如果没有查到,请将该数值插入并形成新的数组(要求降序)* */object shuzu { def main(args: Array[String]): Unit = { var arr = new Array[Int]((math.random*10+1).toInt) for (i <- 0 until arr.length) { arr(i)= (math.random*20).toInt } println(arr.mkString(",")) println("输入一个整数:") val a = StdIn.readInt() val index = arr.indexOf(a) if(index>=0){ println(index) }else{ var b = new Array[Int](arr.length+1) arr.copyToArray(b) b(b.length-1)=a println(b.sorted.reverse.mkString(",")) } }}
package com.sunyongimport scala.io.StdIn/* * 已知:一个任意的四位正整数。将数字重新组合成一个最大的数和最小的数相减, * 重复这个过程,最多七步,必得6174。 -->将减后的值继续重新拆分 * 即:7641-1467=6174。将永远出不来。 * 求证:所有四位数数字(全相同的除外),均能得到6174。输出掉进黑洞的步数。 */object MathBlackHole { def main(args: Array[String]): Unit = { var flag = true while (flag){ var maxNum=0 var minNum=0 var count=0 print("请输入一个四位正整数:") var num = StdIn.readInt() println(num) while(num / 1000 == num % 10 && num / 1000 == num % 1000 / 100 && num / 1000 == num % 100 / 10){ print("数字不可全部一样,请输入一个四位正整数:") num = StdIn.readInt() } do { var nums =new Array[Int](4) nums(0)=num/1000 nums(1)=num%10 nums(2)=num%1000/100 nums(3)=num%100/10 nums=nums.sorted maxNum=nums(3)*1000+nums(2)*100+nums(1)*10+nums(0) println("第" + (count + 1) + "次重新组合最大的值:" + maxNum) minNum=nums(0)*1000+nums(1)*100+nums(2)*10+nums(3) println("第" + (count + 1) + "次重新组合最小的值:" + minNum) num=maxNum-minNum println("差值:"+num) count+=1 }while(num!=6174) println("总共输入了:" + count + "次") if(count>7){ println("超过了7次") flag=false } } println("程序退出") }}
package com.sunyong/** 有一组数,其排列形式如下:* 11,19,9,12,5,20,1,18,4,16,6,10,15,2,17,3,14,7,13,8,* 且尾部8和头部11首尾相连,构成环形的一组数,* 编程找出(连续)相邻的4个数,其相加之和最大,并给出它们的起始位置下标。* */object huanxing { def main(args: Array[String]): Unit = { var arr = Array[Int](11,19,9,12,5,20,1,18,4,16,6,10,15,2,17,3,14,7,13,8) var max1=0 var index1 = 0 for (i <- 0 until arr.length-5){ var a = arr(i)+arr(i+1)+arr(i+2)+arr(3) if(max1< a){ max1=a index1=i } } //留下左边三个数 var b = arr.dropRight(arr.length-3) //留下右边三个数 var c = arr.drop(arr.length-3) //重新组合成新数组 var d = c++:b //右边三个 + 左边三个// println(d.mkString(",")) var index2=0 var max2=0 for (i <- 0 until d.length-5){ var a = d(i)+d(i+1)+d(i+2)+d(3) if(max2< a){ max2=a index2 = i } } //判断是原本数组的下标还是组成环形之后的和更大 if (max1>=max2){ println("起始下标:"+index1+",最大值:"+max1) }else{ println("起始下标"+(index2+arr.length-3)+",最大值:"+max2) } }}
package com.sunyongimport scala.io.StdIn//输入一个十进制数,将其转换成二进制数//除2取余,逆序排列object erjinzhi { def main(args: Array[String]): Unit = { println("请输入一个正整数:") val num = StdIn.readInt() var shang = num var r = 0 var res = ""//保存余数 while (shang!=0){ r=shang % 2 res = r+res //取余逆排列 shang /=2 } println(num+"转换二进制为:"+res) }}
package com.sunyong//利用for循环生成由ABCDEFG...XYZ,26个大写字母与26个小写字母组成的数组object str { def main(args: Array[String]): Unit = { var a1 = 'A' var arr1 = new Array[Char](26) for (i <- 0 to 25){ arr1(i)=(a1.toByte.toInt+i).toChar } var a2 = 'a' var arr2 = new Array[Char](26) for (i <- 0 to 25){ arr2(i)=(a2.toByte.toInt+i).toChar } var arr3 = arr1++:arr2 println(arr3.mkString(",")) }}
package com.sunyongimport scala.io.StdInobject worlCount { def main(args: Array[String]): Unit = { println("请输入一个句子:") val str = StdIn.readLine() println(str.split(" ").map((_,1)).groupBy(_._1).map(x =>(x._1,x._2.length))) }}
转载地址:http://mcjxi.baihongyu.com/