Java 基础编程训练_java编程技术基础测试题

createh51个月前 (02-10)技术教程19
//【例1】九九乘法表
public class MultiplicationTable {
    public static void main(String[] args) {
        // 外层循环控制行数
        for (int i = 1; i <= 9; i++) {
            // 内层循环控制每行中的乘法表达式
            for (int j = 1; j <= i; j++) {
                // 打印乘法结果,两个数字之间用乘号连接
                System.out.print(j + "x" + i + "=" + (j * i) + "\t");
            }
            // 每打印完一行后换行
            System.out.println();
        }
    }
}

例2】公元前5世纪末,我国古代数学家张丘建在《算经》中提出了“百鸡问题”。

大意为:公鸡5元1只,母鸡3元1只,小鸡1元3只,100元钱要买100只鸡,问公鸡、母鸡和小鸡各买多少只?

程序分析:公鸡: x 20只母鸡: y 33只 小鸡: z= 100-x-y

public class HundredChickens {
    public static void main(String[] args) {
        // 外层循环代表公鸡的数量
        for (int rooster = 0; rooster <= 100 / 5; rooster++) {
            // 中层循环代表母鸡的数量
            for (int hen = 0; hen <= 100 / 3; hen++) {
                // 内层循环代表小鸡的数量
                for (int chick = 0; chick <= 100 / 1; chick++) {
                    // 检查当前组合是否满足条件:总价格为100钱,总数量为100只
                    if (rooster * 5 + hen * 3 + chick * 1 == 100 &&
                        rooster + hen + chick == 100) {
                        // 如果满足条件,打印出当前的公鸡、母鸡和小鸡的数量
                        System.out.println("公鸡:" + rooster + "只, 母鸡:" + hen + "只, 小鸡:" + chick + "只");
                    }
                }
            }
        }
    }
}

【例3】求100~1000中所有的水仙花数

public class NarcissisticNumbers {
    public static void main(String[] args) {
        System.out.println("100~1000之间的水仙花数有:");
        for (int i = 100; i <= 1000; i++) {
            int hundreds = i / 100; // 获取百位数
            int tens = (i % 100) / 10; // 获取十位数
            int ones = i % 10; // 获取个位数

            // 计算每一位数字的立方和
            int sum = hundreds * hundreds * hundreds + 
                      tens * tens * tens + 
                      ones * ones * ones;

            // 如果立方和等于原始数值,说明找到了一个水仙花数
            if (sum == i) {
                System.out.println(i);
            }
        }
    }
}

【例4】用java语言实现冒泡排序

public class BubbleSort {
    public static void main(String[] args) {
        int[] numbers = {64, 34, 25, 12, 22, 11, 90};
        bubbleSort(numbers);
        System.out.println("Sorted array: ");
        printArray(numbers);
    }

    // 冒泡排序算法实现
    public static void bubbleSort(int[] arr) {
        int n = arr.length;
        for (int i = 0; i < n - 1; i++) {
            for (int j = 0; j < n - i - 1; j++) {
                // 如果当前元素大于下一个元素,则交换它们
                if (arr[j] > arr[j + 1]) {
                    // 交换 arr[j] 和 arr[j + 1]
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
    }

    // 打印数组
    public static void printArray(int[] arr) {
        for (int i : arr) {
            System.out.print(i + " ");
        }
        System.out.println();
    }
}

【例5】用Java语言实现 斐波那契数列

程序分析:斐波那契数列是一个每一项都是前两项和的数列,如1,1,2,3,5,8,13...

通常定义为:F(0) = 0, F(1) = 1, 且对于 n > 1, 有 F(n) = F(n-1) + F(n-2)。

使用Java语言实现斐波那契数列的两种方法:递归方法和迭代方法。

//方法一:递归方法实现 斐波那契数列, 所谓递归方法,就是方法体中 依然调用方法本身
/*递归方法非常直接地实现了斐波那契数列的定义,但是它的时间复杂度较高,不适合计算大
的斐波那契数。*/
public class FibonacciRecursive {
    public static void main(String[] args) {
        int n = 10; // 计算前10项斐波那契数
        for (int i = 0; i < n; i++) {
            System.out.print(fibonacci(i) + " ");
        }
    }

    public static int fibonacci(int n) {
        if (n <= 1) {
            return n;
        }
        return fibonacci(n - 1) + fibonacci(n - 2);
    }
}

// 方法二:
// 迭代方法使用循环来计算斐波那契数列,它的时间复杂度较低,效率更高。
public class FibonacciIterative {
    public static void main(String[] args) {
        int n = 10; // 计算前10项斐波那契数
        int[] fibonacci = new int[n];
        fibonacci[0] = 0; // 第一项是0
        if (n > 1) {
            fibonacci[1] = 1; // 第二项是1
        }

        for (int i = 2; i < n; i++) {
            fibonacci[i] = fibonacci[i - 1] + fibonacci[i - 2];
        }

        for (int i = 0; i < n; i++) {
            System.out.print(fibonacci[i] + " ");
        }
    }
}

以上就是Java 基础算法的几道很经典的编程题,希望可以帮到你。后续还会继续分享Java算法, C语言相关编程题,请各位关注,后期还会分享spring,springMvc ,springBoot相关的web开发技巧,请各位朋友持续关注

相关文章

JAVA小白 编程练习500题 超详细!带答案!持续更新中

练习题:通过代码编写,输出一句话:“我要开始学习JAVA了,今天又是知识量满满的一天~”package cn.cxy.exec;public class TestPrint {public stati...

Java小白看了都会的12道编程练习题!超详细

前言可能有很多刚入门的小白不知道自己如何能快速提升编程技巧与熟练度,其实大佬进阶之路只有一个:那就是疯狂码代码!实践出真知!当然大佬总结的学习笔记也是少不了的。Java后端最全面试攻略,吃透25个技术...

100个Java必备练习项目「附源码、文档」

需要的朋友可以下图自取:...

“拿到了 Java 开发的 Offer,但我对 Java 几乎一窍不通?”

整理 | 郑丽媛出品 | CSDN(ID:CSDNnews)试问:一个自学代码、参加了相关训练、但只会 JavaScript 的人,突然拿到了 Java 开发的 Offer,第一反应是什么?该故事的主...

16个Java项目,助你成为Java高级开发工程师

作为程序员,简历上都有“项目实践”这一模块,而这对于刚刚打算踏入Java岗位的求职者来说,简直太难了。学习了三四个月,好不容易学会了语法和框架,到头却发现没有项目实践经验。但恰恰公司对于这个模块非常的...

Java在人工智能开发中的关键作用_java在人工智能的应用

随着人工智能(AI)技术的迅速发展,越来越多的企业和开发者将目光投向这一领域。人工智能不仅在图像识别、自然语言处理等方面取得了突破性进展,还在自动驾驶、医疗诊断等领域展现了巨大的潜力。然而,在推动AI...