java基础编程练习题

1、題目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一

对兔子,假如兔子都不死,问每个月的兔子总数为多少?

1

2

3

4

5

6

7

1

1

2

3

5

8

13

这就是斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”

1public class TestDemo { 2 public static void main(String[] args) throws Exception { 3 4 int i; //i表示月份 5 long arr[] = new long[36];//这个数值用来表示每个月兔子的数量 6 arr[0] = arr[1] = 1; 7 System.out.println("第1个月有兔子1对," + "总数是" + 2); 8 System.out.println("第2个月有兔子1对," + "总数是" + 2); 9 for (i = 2; i <= 35; i++) { 10 arr[i] = arr[i - 1] + arr[i - 2]; 11 System.out.println("第" + i + "个月有兔子" + arr[i] + "对," + "总数是" + arr[i] * 2); 12 } 13 } 14}

2、题目:判断101-200之间有多少个素数,并输出所有素数。 

素数又叫质数,就是除了1和它本身之外,再也没有整数能被它整除的数。

1public class TestDemo { 2 public static void main(String[] args) throws Exception { 3 4 int sum=0; 5 for (int i = 101; i < 201; i++) { //i是101到200之间的数字 6 for (int j = 2; j <=i; j++) { //j是2到200之间的数字 7 8 if(j==i) { //如果i=j则输出 9 System.out.println(j); 10 sum++; 11 } 12 else if(i%j==0) { //如果i能被j整除则表明i不是素数,计数器+1 13 break; 14 } 15 16 } 17 18 } 19 System.out.println("总共有"+sum+"个素数"); 20 } 21}

3、打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:
153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

1public class TestDemo { 2 public static void main(String[] args) { 3 int i ; 4 for (i = 100; i < 1000; i++) { 5 int a = i/100; 6 int b = (i%100)/10; 7 int c = i%10; 8 if (i==a*a*a+b*b*b+c*c*c){ 9 System.out.println(i); 10 } 11 } 12 13 } 14} 15 16int sum,i,j,k; 17 for(i=1;i<=9;i++){ 18 for (j=0;j<=9;j++){ 19 for (k=0;k<=9;k++){ 20 sum=i*i*i+j*j*j+k*k*k; 21 if (i*100+j*10+k==sum){ 22 System.out.println(sum); 23 } 24 } 25 } 26 }

4、题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。 
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 

1import java.util.Scanner; 2 3public class TestDemo { 4 public static void main(String[] args) { 5 System.out.println("请输入正整数:"); 6 Scanner scanner= new Scanner(System.in); 7 int num = scanner.nextInt(); 8 //System.out.print(num+"="); 9 10 for(int i=2;i<=num;i++) { 11 while(num!=i) { 12 if(num%i==0) { 13 System.out.print(i+"*"); 14 num=num/i; 15 } 16 else 17 break; 18 } 19 } 20 System.out.println(num); 21 } 22}
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java.util.ConcurrentModificationException异常原因及解决方法

今天在做一个很简单的Java练习题的时候遇到这个问题。题目:一对兔子在出生第三个月的时候开始,每个月会生一对小兔子。当小兔子在它们第三个月的时候,同理。问:每个月的兔子总数。这是一个很简单的题,前6个月的兔子数量是,1,1,2,3,5,8.斐波拉契数列。按这个规律就可以得出结果。但是我是用创建对象的方法来做。代码:publiccla

java经典50题

JAVA基础编程练习50题本文对50道经典的java程序题进行详细解说,对于初学者可以跳过一些逻辑性太强的题目,比如第一题用到了方法的递归,初学者可能不理解,最好先看那些有if、for、while可以简单解决的程序题!但是,对于比较深入学习过的同学,还是希望可以一口气就看完,这是比较全面思维锻炼!【程序1】题目:古典问题:有一对兔子,从

C语言基础习题50例(三)11-15

你们看出神马了吗(\\^_\^\)习题11有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少实现思路:从第1个月起,兔子对数分别为1、1、2、3、5、8、13、21...,显然是斐波拉契数列。代码如下:cinclude<stdio.hintmai