题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问某个月的兔子总数为多少? 代码运行结果如下图所示: 题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子? 下图为程序运行结果: 题目:一个多位数,判断它是不是回文数。如12321是回文数,个位与万位相同,十位与千位相同。 程序运行结果如下图所示: 题目:打印出所有的 “水仙花数 “,所谓 “水仙花数 “是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 “水仙花数 “,因为153=1的三次方+5的三次方+3的三次方。 题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 题目:判断n~m之间有多少个素数,并输出所有素数。
【程序1】
**程序分析:**兔子的规律为数列1,1,2,3,5,8,13,21…,为Fibonacci数列(斐波那契数列)。
1.使用递归求解:import java.util.*; public class Test1{ public static void main(String args[]){ while(true){ int yueshu=new Scanner(System.in).nextInt(); System.out.println("您好:第"+yueshu+"个月的兔子数为:"+f(yueshu)+"对。");}} public static int f(int x){ if(x==1 || x==2) return 1; else return f(x-1)+f(x-2);} }
2.使用循环import java.util.*; public class Test1$1{ public static void main(String args[]){ Scanner read=new Scanner(System.in); while(true){ int yueshu=read.nextInt(); int sum=1,oldsum=0,temp=0; for(int i=0;i<yueshu-1;i++){ oldsum=sum; sum+=temp; temp=oldsum;} System.out.println("您好:第"+yueshu+"个月的兔子数为:"+sum+"对。");} } }
总结:
1.在方法1中,由于键盘录将Scanner方法两行代码写为一行,虽然看着简洁,减少了代码量,但是,在while中每次循环都会录入月数时都会new 一个Scanner对象,造成额外的资源消耗。
2.方法一使用递归,有可能会造成内存溢出,对内存要求高,而方法二使用循环可以有效的避免这个问题。【程序2】
public class Test2{ public static void main(String[] args){ int i=0,x=0; while(x<5){ i++; int q=i; for(int y=0;y<5;y++){ if(--q%5==0){ x++; q=q*4/5; } } if(x==5){ System.out.println(i); }else{x=0;} }} }
【程序3】
以下为我的解题代码:import java.util.Scanner; public class test3 { public static void main(String[] args) { Scanner input =new Scanner(System.in); while(true){ StringBuffer number=new StringBuffer(input.nextLine()); String left=number.toString(); String right=number.reverse().toString(); //System.out.println(left); //System.out.println(right); if (left.contains(right)){ //or if(left.equals(right)) System.out.println("Good luck,the number you entered:"+left+"is palindrome" );} else{ System.out.println("Sorry,the number you entered:"+left+"is not palindrome");} }} }
【程序4】
import java.util.*; public class Test4 { public static void main(String[] args) { Scanner read=new Scanner(System.in); int a,b,c; while(read.hasNext()){ int N=read.nextInt(); for(int i=104;i<N&&i<1000;i++) { a=i%10; b=i/10%10; c=i/100; if(a*a*a+b*b*b+c*c*c==i) System.out.println("符合条件的数:"+i); } } } }
【程序5】
import java.util.*; public class Test5 { public static void main(String[] args) { Scanner read=new Scanner(System.in); while(read.hasNext()){ int a=read.nextInt(),n=read.nextInt(); if(a>9||n>9){ System.out.println("Sorry,xiaode'ability is too small to process the numbers you enter!!!"); }else{ StringBuffer s=new StringBuffer("s="); long sum=0,b=0; for(int i=0;i<n;i++) { b+=a; sum+=b; a=a*10; s.append(b+"+"); } System.out.println(s.deleteCharAt(s.length() - 1).append("="+sum));} }} }
【程序6】
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。import java.util.*; public class Test6 { public static void main(String[] args) { Scanner read=new Scanner(System.in); while(read.hasNext()){ int x=read.nextInt(),y=read.nextInt(); if(x>y){ y+=x; x=y-x; y-=x;} panduansushu(x,y);}} public static void panduansushu(int x,int y){ int count=0; if(x%2==0)x++; for(int i=x;i<=y;i+=2) { boolean flag=true; for(int j=2;j<=Math.sqrt(i);j++) { if(i%j==0) { flag=false; break; } } if(flag==true) { count++; System.out.println("素数"+count+":"+i); } } System.out.println("你好:"+x+"~"+y+"之间的素数数量为:"+count); } }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算