java基础题大全详解

TheDisguiser 2020-08-19 20:16:08 java常见问答 6881

做题是提升能力的最简单方法之一,多做题才能运用并了解更多知识,下面我们就来看一些经典的java基础题目。

題目1:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

代码:

public class Example1
{
    public static void main(String args[])
    {
        //i是表示月份的,这里计算了36个月,也就是三年,兔子的数量
        int 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] + "对" + ", " + "总数是" + 2 * arr[i]);
            //规律是 每个数字都是前面两个数字之和
        }
    }
}

题目2:打印出所有的"水仙花数";"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。

代码:

public class Example3
{
    public static void main(String args[])
        {
            int a, sum; //表示100~999
            int i, j, k; //分别表示百位、十位、各位
            for (a = 100; a <= 999; a++)
            {
                i = a / 100;
                j = (a - i * 100) / 10;
                k = a - i * 100 - j * 10;
                sum = i * i * i + j * j * j + k * k * k;
                //java的运算符,立方要这样写,写成i^3这样,竟然运算不出来
                //如果遇到高次的话可以使用循环算出来
                if (sum == a)
                {
                    System.out.println(sum);
                }
            }

题目3:将一个正整数分解质因数。如:输入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.*;
public class Example4
{
    public static void main(String[] args)
    {
        int x;
        Scanner in = new Scanner(System.in); //定义从键盘输入 
        System.out.print("请输入一个正整数:"); //提示 
        x = in .nextInt(); //将从键盘输入的数赋值给x 
        new PrimeSplit(x); //匿名初始化一个对象,还有参数的构造函数 
    }
}
class PrimeSplit
{
    int k = 2; //将最小的质数赋值给k 
    public PrimeSplit(int x)
    { //小于等于1的数不可以分解 
        if (x <= 1)
        {
            System.out.println(x + "是无效的被分解数");
        }
        else if (x == 2)
        {
            System.out.println(x + "分解后的质因数为: 1*" + x); //如果输入的是最小质数2, 
        }
        else
        {
            System.out.print(x + "分解后的质因数为: 1"); //1是所有的正整数的质数 
            while (k <= x)
            { //输入的数可以被k整除 
                if (x % k == 0)
                {
                    System.out.print("*" + k); //将k添加到结果中 
                    x = x / k; //除以最小质数后重新循环 
                }
                else
                {
                    k++;
                }
            }
        }
    }
}

以上就是本篇文章的所有内容,如上这些只是非常基础的java题目,如果需要了解更多其他进阶题目的话,就快来本网站的java面试宝典中寻找答案吧。

推荐阅读:

java基础菜鸟教程大全,java入门

java基础算法、递归调用、字符串切割详解

java基础之string算法,五个练习题目