本文共 7473 字,大约阅读时间需要 24 分钟。
package com.sunyong/**一年之内一对兔子能繁殖多少对?于是就筑了一道围墙把一对兔子关在里面。已知一对兔子每个月可以生* 一对小兔子,而一对兔子从出生后第3个月起每月生一对小兔子。假如一年内没有发生死亡现象,那么,一对兔子一年内(12个月)* 能繁殖成多少对? 分析:兔子的规律为数列,1,1,2,3,5,8,13,21* ///兔子生孩子-->斐波那契数列,前两者和等于第三者object Tuzi { def main(args: Array[String]): Unit = { //斐波那契数列,前两者和等于第三者 ai=ai-1 + ai-2 val rubbit: Array[Int] = new Array[Int](12) rubbit(0) = 1 rubbit(1) = 1 var i: Int = 2 while (i<=rubbit.length-1){ rubbit(i)=rubbit(i-1)+rubbit(i-2) i += 1 } println("12个月后几对兔子:"+rubbit(11)) for(s<-rubbit) { println(s) } }}
package com.sunyongimport util.control.Breaks._// 101-200的素数个数并输出object Su { def main(args: Array[String]): Unit = { var count=0 //定义个数 for (i:Int<- 101 to 200) { breakable( for(j:Int<- 2 to i-1){ if(i%j==0){ //可整除不是素数,跳出出循环 break() }else{ if(j==i-1){ //是素数输出个数+1 count+=1 print(i+" ") } } }) } println() println("共有"+count+"个") }}
package com.sunyong//三位数水仙花数:位数三次幂和等于本身object Shuixiahua { def main(args: Array[String]): Unit = { for (i:Int <-100 to 999){ var ge = i%10 val shi = i%100/10 val bai = i/100 if (i==(ge*ge*ge+shi*shi*shi+bai*bai*bai)) println(i) } }}
package com.sunyongimport scala.io.StdIn//分解质因数 如90=1*2*3*3*5object Fenjie { def main(args: Array[String]): Unit = { println("请输入一个整数:") var num =StdIn.readInt() if (num > 1) { var n = 2 // 定义一个最小的质数,直接从2开始 print(num + "=1*") while (num != n) { // 如果能被整除,就打印出n这个质数 if (num % n == 0) { print(n + "*") num /= n // 继续让num作为新的数继续除以n } else n+= 1 // 如果不能被整除,最小质数+1 } // 如果一个质数刚好等于输入的这个数 print(n) //到最后n=num时在输出n } }}
package com.sunyongimport scala.io.StdIn//求最大公约数和最小公倍数//在循环中只要除数不等于0,用较大数除以较小的数//小的数作为下一轮大的数,余数作为小的数//返回最后较大数位最大公约数//最小公倍数为两数积/最大公约数object Gongyuebei { def main(args: Array[String]): Unit = { println("请输入一个整数:") var m =StdIn.readInt() println("请输入另一个整数:") var n= StdIn.readInt() val s1 = n //保存变量值 val s2 = m //保存变量值 while(m!=0){ //条件 var a =n%m //取余 n=m //较大=较小 m=a //较小=较大/较小取余 } println("最大公约数:"+n) //最大公约数 println("最小公倍数:"+s1*s2/n) //最小公倍数 }}
package com.sunyong//完数:本身=所有因子之和如6=1+2+3 找出1000内完数object Wanshu { def main(args: Array[String]): Unit = { for(i<-1 until 1000){ var number =0 for(a <- 1 until i){ if(i%a==0){ //a是因子 number+=a //因子相加 } } if (number==i){ //判断是否完数 println(i+"是完数") } } }}
package com.sunyong/** * 猴子吃桃问题: 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃了一半, * 又多吃一个,以后每天都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子。求第一天共摘了多少个? */object MonkeyPeach { def main(args: Array[String]): Unit = { var surplus:Int =1 var sum = 0 for (day <- 10 until 1 by -1){ //逆向思维 surplus = 2*surplus+2; } println("第一天的桃子数量:"+surplus) }}
package com.sunyongimport scala.io.StdIn/**题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,* 低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;* 40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,* 超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?* 程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。*/object Lirun { def main(args: Array[String]): Unit = { var prize = 0 println("输入利润:") var money = StdIn.readInt() if(money<=100000) prize = money/10 else if (money <= 200000&&money > 100000) { prize = 10000 + (money - 100000) * 75 / 1000 } else if (money <= 400000 && money > 200000) prize = 10000 + 100000 / 75 / 1000 + (money - 200000) * 5 / 100 else if (money <= 600000 && money > 400000) prize = 10000 + 100000 / 75 / 1000 + 200000 * 5 / 100 + (money - 400000) * 3 / 100 else if (money <= 1000000 && money > 600000) prize = 10000 + 100000 / 75 / 1000 + 200000 * 5 / 100 + 200000 * 3 / 100 + (money - 600000) * 15 / 1000 else prize =10000 + 100000 / 75 / 1000 + 200000 * 5 / 100 + 200000 * 3 / 100 + 400000 * 15 / 1000 + (money - 1000000) / 100 println("应发奖金数:"+prize+"元") }}
package com.sunyong/** 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?* 程序分析:可填在百位、十位、个位的数字都是1、2、3、4。* 组成所有的排列后再去 掉不满足条件的排列。*/object Zushu { //Java实现 def main(args: Array[String]): Unit = { //满排列问题4*3*2=24 var s = "" var count = 0 for(i<-1 to 4){ for(j<-1 to 4){ for(k<-1 to 4){ if(i!=j && j!=k && i!=k){ count+=1 print(s + i + j + k + "\t") } } } } println() println("共有:"+count+"种组合") } // scala函数做法 def a()={ var y = 0 (1 to 4).toArray.permutations.map(x=>(x.dropRight(1))).map(x=>(x,1)).foreach(x=>{ println(x._1.mkString(""));y=y+1}) println("共有"+y+"种方式") }}
package com.sunyongimport java.util._//判断今天是这一年的第几天object CountDay { def main(args: Array[String]): Unit = { var c = Calendar.getInstance() //设置时间可为年月日(注意月份是0-11)// c.set(2019,11,31) c.setTime(new Date()) println(c.get(Calendar.DAY_OF_YEAR)) }}
//第一个人10岁此后每个人大两岁package com.sunyong//五人岁数object Age { def main(args: Array[String]): Unit = { var a1=10 for (i:Int <- 1 to 4){ a1+=2 } println(a1) }}
package com.sunyong//判断整数的位数import scala.io.StdInobject Numweishu { def main(args: Array[String]): Unit = { println("请输入一个整数:") var num = StdIn.readInt() println(num.toString.length) }}
package com.sunyong//计算1000以内所有不能被7整除的整数之和object num7 { def main(args: Array[String]): Unit = { var sum = 0 for(i <- 1 to 1000){ if(i%7!=0){ sum+=i } } println ("1000以内所有不能被7整除的和:" + sum) }}
package com.sunyongobject _100 { def main(args: Array[String]): Unit = { var sum = 1 for(i <- 2 to 100){ if(i%2==0){ sum+=i }else{ sum-=i } } println("总和是:" + sum) }}
package com.sunyongobject mountain { def main(args: Array[String]): Unit = { var paper = 0.00008 var num=0 while(paper<8848.13){ num+=1 paper*=2 } println("经过对折"+num+"次能达到") }}
package comimport scala.io.StdInobject jiechen { def main(args: Array[String]): Unit = { // 输入数字不要超过25 println("输入一个正整数:") var num = StdIn.readLong() val n = num var count = num while (count>1){ num*=(count-1) count-=1 } println(n+"的阶乘:"+num) }}
package comimport scala.io.StdInimport scala.util.control.Breaks._object OddsNum { def main(args: Array[String]): Unit = { var num = 0 var countOdd = 0 var countEven = 0 println("输入正整数,输入-1结束:") breakable( do{ num = StdIn.readInt() if(num == -1){ println("输入结束") println("奇数个数:"+(countOdd)+"偶数个数:"+countEven) break() }else if(num<0) { println("输入必须为正整数,重新输入:") }else{ if(num%2==0){ countEven+=1 }else{ countOdd+=1 } } }while((num != -1))) }}
转载地址:http://lcjxi.baihongyu.com/