java基础编程练习题

Wesley13
• 阅读 513

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

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

1

2

3

4

5

6

7

1

1

2

3

5

8

13

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

public class TestDemo {
    public static void main(String[] args) throws Exception {

        int i; //i表示月份
        long arr[] = new long[36];//这个数值用来表示每个月兔子的数量
        arr[0] = arr[1] = 1;
        System.out.println("第1个月有兔子1对," + "总数是" + 2);
        System.out.println("第2个月有兔子1对," + "总数是" + 2);
        for (i = 2; i <= 35; i++) {
            arr[i] = arr[i - 1] + arr[i - 2];
            System.out.println("第" + i + "个月有兔子" + arr[i] + "对," + "总数是" + arr[i] * 2);
        } 
    }
}

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

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

public class TestDemo {
    public static void main(String[] args) throws Exception {

        int sum=0;
        for (int i = 101; i < 201; i++) {  //i是101到200之间的数字
            for (int j = 2; j <=i; j++) {  //j是2到200之间的数字

                if(j==i) {                 //如果i=j则输出
                    System.out.println(j);
                    sum++;
                }
                else if(i%j==0) {       //如果i能被j整除则表明i不是素数,计数器+1
                    break;
                }

            }

        }
        System.out.println("总共有"+sum+"个素数");
    }
}

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

public class TestDemo {
    public static void main(String[] args)  {
        int i ;
        for (i = 100; i < 1000; i++) {
            int a = i/100;
            int b = (i%100)/10;
            int c = i%10;
            if (i==a*a*a+b*b*b+c*c*c){
                System.out.println(i);
            }
        }

    }
}

int sum,i,j,k;
        for(i=1;i<=9;i++){
            for (j=0;j<=9;j++){
                for (k=0;k<=9;k++){
                    sum=i*i*i+j*j*j+k*k*k;
                    if (i*100+j*10+k==sum){
                        System.out.println(sum);
                    }
                }
            }
        }

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

import java.util.Scanner;

public class TestDemo {
    public static void main(String[] args) {
        System.out.println("请输入正整数:");
        Scanner scanner= new Scanner(System.in);
        int num = scanner.nextInt();
        //System.out.print(num+"=");

        for(int i=2;i<=num;i++) {
            while(num!=i) {
                if(num%i==0) {
                    System.out.print(i+"*");
                    num=num/i;
                }
                else
                   break;
            }
        }
        System.out.println(num);
    }
}
点赞
收藏
评论区
推荐文章
blmius blmius
2年前
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
Wesley13 Wesley13
2年前
java.util.ConcurrentModificationException异常原因及解决方法
今天在做一个很简单的Java练习题的时候遇到这个问题。题目:一对兔子在出生第三个月的时候开始,每个月会生一对小兔子。当小兔子在它们第三个月的时候,同理。问:每个月的兔子总数。这是一个很简单的题,前6个月的兔子数量是,1,1,2,3,5,8.斐波拉契数列。按这个规律就可以得出结果。但是我是用创建对象的方法来做。代码:publiccla
CuterCorley CuterCorley
3年前
C语言基础习题50例(三)11-15
你们看出神马了吗(\\^_\^\)习题11有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少实现思路:从第1个月起,兔子对数分别为1、1、2、3、5、8、13、21...,显然是斐波拉契数列。代码如下:cinclude<stdio.hintmai
Wesley13 Wesley13
2年前
java经典50题
JAVA基础编程练习50题本文对50道经典的java程序题进行详细解说,对于初学者可以跳过一些逻辑性太强的题目,比如第一题用到了方法的递归,初学者可能不理解,最好先看那些有if、for、while可以简单解决的程序题!但是,对于比较深入学习过的同学,还是希望可以一口气就看完,这是比较全面思维锻炼!【程序1】题目:古典问题:有一对兔子,从
Wesley13 Wesley13
2年前
Java日期时间API系列31
  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前
Wesley13 Wesley13
2年前
Java面试不得不知的程序(二)
【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?斐波那契数列:前面相邻两项之和,构成了后一项通项公式注:此时a11,a21,ana(n1)a(n2)(n3,n∈N\)通项公式的推导斐波那契数列:1、1
Stella981 Stella981
2年前
Python递归函数、匿名函数、过滤函数
递归函数Python对递归的深度有限制,超过即会报错。所以一定一要注意跳出条件。斐波拉契数列一个数列,第一个数是1,第二个数也是1,从第三个数开始,每一个数是前两个数之和公式:f(1)1,f(2)1,f(3)f(1)f(2),...,f(n)f(n2)f(n1)
Wesley13 Wesley13
2年前
JAVA学习入门篇_递归结构
递归结构递归是一种常见的解决问题的方法,即把问题逐渐简单化。递归的基本思想就是“自己调用自己”,一个使用递归技术的方法将会直接或者间接的调用自己。​利用递归可以用简单的程序来解决一些复杂的问题。比如:斐波那契数列的计算、汉诺塔、快排等问题。​递归结构包括两个部分:​1.定义递归头。解答:什么
Stella981 Stella981
2年前
Linux系统Shell编程——脚本编写思路与过程
!(https://oscimg.oschina.net/oscnet/b5650333a00146298052e4da35a0746d.gif"兔子红箭头引导关注")Linux系统Shell编程——脚本编写思路与过程“前段时间有小伙伴问我一些问题,涉及到shell脚本的编写问题,事后,我深入思考了下,实际生产环境的确也
菜园前端 菜园前端
9个月前
什么是动态规划?
原文链接:什么是动态规划?动态规划也是算法设计的一种方法/思想。它将一个问题分解为相互重叠的子问题,通过反复求解子问题,来解决原来的问题。基础案例场景一斐波那契数列当前数等于前面两个数的和。定义子问题:f(n)f(n1)f(n2)