Java 基础编程训练_java编程技术基础测试题
//【例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开发技巧,请各位朋友持续关注