首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >备战第十六届蓝桥杯——函数——实践练习答案

备战第十六届蓝桥杯——函数——实践练习答案

作者头像
红目香薰
发布2024-11-04 08:16:03
发布2024-11-04 08:16:03
24400
代码可运行
举报
文章被收录于专栏:CSDNToQQCodeCSDNToQQCode
运行总次数:0
代码可运行

1、使用java编写一个函数,接受一个字符串参数,将字符串中的所有小写字母转换为大写字母并返回。

代码语言:javascript
代码运行次数:0
运行
复制
public class Main {
    public static void main(String[] args) {
        String originalString = "hello, world!";
        String upperCaseString = convertToUpperCase(originalString);
        System.out.println("原始字符串:" + originalString);
        System.out.println("转换为大写后的字符串:" + upperCaseString);
    }
    public static String convertToUpperCase(String str) {
        StringBuilder result = new StringBuilder();
        for (char c : str.toCharArray()) {
            if (Character.isLowerCase(c)) {
                result.append(Character.toUpperCase(c));
            } else {
                result.append(c);
            }
        }
        return result.toString();
    }
}

2、使用java利用函数重载,编写多个area函数,分别计算矩形(接受长和宽)、三角形(接受底和高)、圆形(接受半径)的面积。

使用类完成

代码语言:javascript
代码运行次数:0
运行
复制
package temp01;
public class Main {
	public static void main(String[] args) {
        AreaCalculator calculator = new AreaCalculator();

        double rectangleArea = calculator.area(5, 4);
        System.out.println("矩形面积:" + rectangleArea);

        double triangleArea = calculator.area(6, 8);
        System.out.println("三角形面积:" + triangleArea);

        double circleArea = calculator.area(3);
        System.out.println("圆形面积:" + circleArea);
    }
}
class AreaCalculator {

    // 计算矩形面积
    public double area(int length, int width) {
        return length * width;
    }

    // 计算三角形面积
    public double area(double base, int height) {
        return 0.5 * base * height;
    }

    // 计算圆形面积
    public double area(double radius) {
        return Double.parseDouble(String.format("%.2f", Math.PI * radius * radius));
    }
}

使用函数直接完成

代码语言:javascript
代码运行次数:0
运行
复制
package temp01;
public class Main {
	public static void main(String[] args) {
        double rectangleArea = area(5, 4);
        System.out.println("矩形面积:" + rectangleArea);

        double triangleArea = area(6, 8);
        System.out.println("三角形面积:" + triangleArea);

        double circleArea = area(3);
        System.out.println("圆形面积:" + circleArea);
    }
    // 计算矩形面积
    public static double area(int length, int width) {
        return length * width;
    }

    // 计算三角形面积
    public static double area(double base, int height) {
        return 0.5 * base * height;
    }

    // 计算圆形面积
    public static double area(double radius) {
        return Double.parseDouble(String.format("%.2f", Math.PI * radius * radius));
    }
}

3、使用java编写一个函数,接受一个整数数组,返回数组中所有元素的平均值。

代码语言:javascript
代码运行次数:0
运行
复制
package temp01;
public class Main {
	public static void main(String[] args) {
		int[] numbers = {1, 2, 3, 4, 5};
        double average = calcAvg(numbers);
        System.out.println("数组的平均值为:" + average);
    }
	public static double calcAvg(int[] array) {
        if (array == null || array.length == 0) {
            return 0;
        }
        int sum = 0;
        for (int num : array) {
            sum += num;
        }
        return (double) sum / array.length;
    }
}

4、使用java编写一个函数,接受一个二维数组,实现矩阵的转置功能。(背下来)

代码语言:javascript
代码运行次数:0
运行
复制
package temp01;
public class Main {
	public static void main(String[] args) {
        int[][] arr = {
                {1, 2, 3},
                {4, 5, 6},
                {7, 8, 9}
        };
        int[][] new_arr = transposeArr(arr);
        for (int[] row : new_arr) {
            for (int e : row) {
                System.out.print(e + " ");
            }
            System.out.println();
        }
    }
    public static int[][] transposeArr(int[][] arr) {
        int rows = arr.length;
        int cols = arr[0].length;
        int[][] tArr = new int[cols][rows];
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < cols; j++) {
            	tArr[j][i] = arr[i][j];
            }
        }
        return tArr;
    }
}
矩阵转置的重要意义

改变数据结构的视角:矩阵转置实际上是对矩阵的一种重新组织。原始矩阵的行变成了转置矩阵的列,原始矩阵的列变成了转置矩阵的行。这种转换提供了一种从不同维度观察数据的方式,有助于发现数据在不同方向上的规律和关系。

在数学运算中的便利性:在许多数学计算和理论推导中,转置操作可以简化计算过程。例如,在矩阵乘法中,当计算两个矩阵 和 的乘积 较为复杂时,转置其中一个矩阵(如计算 或 )可能会使计算更容易理解和处理,因为矩阵乘法的规则与行列的排列密切相关。转置操作还在求解线性方程组、计算矩阵的特征值和特征向量等方面发挥重要作用。

数据存储和访问优化:在计算机存储和处理矩阵数据时,转置可以优化数据的访问模式。某些算法对行数据或列数据的访问效率不同,通过转置矩阵,可以根据算法的需求调整数据存储方式,提高算法的运行速度。

实际算法中的应用 - 图像旋转(数字图像处理)

原理:在数字图像处理中,图像可以看作是一个二维矩阵,其中每个元素代表图像的一个像素点的亮度或颜色信息。当需要对图像进行旋转操作时(例如,将一幅图像顺时针旋转 90 度),可以通过矩阵转置来实现部分操作。

代码语言:javascript
代码运行次数:0
运行
复制
public class ImageRotator {
    public static int[][] rotateImage(int[][] image) {
        // 先进行转置
        int[][] transposed = transposeMatrix(image);
        int rows = transposed.length;
        int cols = transposed[0].length;
        // 再反转每一行,实现顺时针90度旋转
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < cols / 2; j++) {
                int temp = transposed[i][j];
                transposed[i][j] = transposed[i][cols - 1 - j];
                transposed[i][cols - 1 - j] = temp;
            }
        }
        return transposed;
    }

    public static int[][] transposeMatrix(int[][] matrix) {
        int rows = matrix.length;
        int cols = matrix[0].length;
        int[][] transposedMatrix = new int[cols][rows];
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < cols; j++) {
                transposedMatrix[j][i] = matrix[i][j];
            }
        }
        return transposedMatrix;
    }
}

Python代码与效果

代码语言:javascript
代码运行次数:0
运行
复制
def rotate_image(image):
    # 转置矩阵
    transposed = list(map(list, zip(*image)))
    rows = len(transposed)
    cols = len(transposed[0])
    # 反转每一行,实现顺时针 90 度旋转
    for i in range(rows):
        transposed[i] = transposed[i][::-1]
    return transposed


arr = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]
for i in arr:
    print(i)
print("-------------------")
arr_s = rotate_image(arr)
for i in arr_s:
    print(i)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-11-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、使用java编写一个函数,接受一个字符串参数,将字符串中的所有小写字母转换为大写字母并返回。
  • 2、使用java利用函数重载,编写多个area函数,分别计算矩形(接受长和宽)、三角形(接受底和高)、圆形(接受半径)的面积。
  • 3、使用java编写一个函数,接受一个整数数组,返回数组中所有元素的平均值。
  • 4、使用java编写一个函数,接受一个二维数组,实现矩阵的转置功能。(背下来)
    • 矩阵转置的重要意义
    • 实际算法中的应用 - 图像旋转(数字图像处理)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档