SCAU学习笔记 - 面向对象程序设计课后习题

复活啦!这学期给先给各位带来Java的题解 后续的Bash可能也会有 这篇自己也是边学边敲的 算是共勉啦!

01-基础语法编程的知识点

摄氏温度值度转换成华氏温度值

java.util.Scanner是用来读入数据的,默认读入的是字符串
println输出的时候会自带一个回车,想输出两位小数的话就必须要转成字符串,占位规则和C语言没什么区别
变量的定义和计算赋值啥的都和C语言没啥区别 就不多说了

java">import java.util.*;

public class one_one {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        double C = in.nextDouble();
        double F = C * 9 / 5 + 32;
        System.out.println(String.format("%.2f", F));
    }
}

圆柱体的体积

和上一题没有太大区别

java">import java.util.*;
import java.lang.*;

public class one_two {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        double r = in.nextDouble();
        double h= in.nextDouble();
        double V = Math.PI * r * r * h;
        System.out.println(String.format("%.2f", V));
    }
}

正整数的各位数字之和

nextLine可以直接读取一整行的内容作为字符串存进去
字符串的遍历,包括for循环的语法和取字符串长度都和C++没有差别

java">import java.util.*;
import java.lang.*;

public class one_three {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String s = in.nextLine();
        int res=0;
        for(int i=0;i<s.length();i++){
            res+=s.charAt(i)-'0';
        }
        System.out.println(res);
    }
}

三角形的面积

java">import java.util.*;
import java.lang.*;

public class one_four {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        double x1=in.nextDouble();
        double y1=in.nextDouble();
        double x2=in.nextDouble();
        double y2=in.nextDouble();
        double x3=in.nextDouble();
        double y3=in.nextDouble();
        double s1=Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
        double s2=Math.sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3));
        double s3=Math.sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
        double s=(s1+s2+s3)/2;
        double area=Math.sqrt(s*(s-s1)*(s-s2)*(s-s3));
        System.out.println(String.format("area=%.2f", area));
    }
}

计算每个月第一天是星期几

开始写一些复杂的逻辑,我们先预处理每个月的天分,把闰年这样一个变量解决了,然后每个月累加天数计算即可

java">import java.util.*;
import java.lang.*;

public class One_five {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int year = in.nextInt();
        int first = in.nextInt();
        int[] days = {31,28,31,30,31,30,31,31,30,31,30,31};
        if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
            days[1] = 29;
        }
        int[] ans = new int[12];
        ans[0] = first;
        for (int i = 1; i < 12; i++) {
            ans[i] = (ans[i-1] + days[i-1]) % 7;
        }
        for (int i = 0; i < 12; i++) {
            System.out.print(ans[i]);
            if (i != 11) {
                System.out.print(" ");
            }
        }
    }
}

正整数10进制形式转换16进制形式

直接调函数,常见的进制转换一般都有内置函数的

java">import java.util.*;
import java.lang.*;

public class One_six {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        if(n < 0) {
            System.out.println("不正确的输入");
            return;
        }
        System.out.println(Integer.toHexString(n).toUpperCase());
    }
}

计算自然常数 e 的值

这题要注意一下浮点数和整数的计算规则啥的,如果学过C语言了那就都不成问题吧

java">import java.util.*;
import java.lang.*;

public class ont_seven {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        if(n < 0) {
            System.out.println("不正确的输入");
            return;
        }
        double e = 1;
        double temp = 1;
        for(int i = 1; i <= n; i++) {
            temp *= i;
            e += 1.0 / temp;
        }
        System.out.println(String.format("%.8f", e));
    }
}

判断回文整数

正常判断回文串即可,注意有负数的话要直接输出错误,所以要取字符串的第一个字符,和C语言有些不同,需要调一个函数

java">import java.util.*;
import java.lang.*;

public class One_eight {
    public static void main(String[] args) {
        String input = System.console().readLine();
        if(input.charAt(0) == '-') {
            System.out.println("不正确的输入");
            return;
        }
        int len = input.length();
        boolean flag = true;
        for (int i = 0; i < len / 2; i++) {
            if (input.charAt(i) != input.charAt(len - i - 1)) {
                flag = false;
                break;
            }
        }
        if (flag) {
            System.out.println("Yes");
        } else {
            System.out.println("No");
        }
    }
}

储物柜问题

注意数组开桶的语法

java">import java.util.Scanner;

public class One_nine {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int m = in.nextInt();
        boolean[] lockers = new boolean[m];
        for (int i = 0; i < m; i++) {
            lockers[i] = false;
        }
        for (int i = 1; i <= m; i++) {
            for (int j = i - 1; j < m; j += i) {
                lockers[j] = !lockers[j];
            }
        }
        for (int i = 0; i < m; i++) {
            if (lockers[i]) {
                System.out.print(i + 1 + " ");
            }
        }
    }
}

考试成绩分析

注意一下长度可变的数组是怎么开的

java">import java.util.*;
import java.lang.*;

public class One_ten {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[][] arr = new int[n][];
        for (int i = 0; i < n; i++) {
            int m = in.nextInt();
            arr[i] = new int[m];
            for (int j = 0; j < m; j++) {
                arr[i][j] = in.nextInt();
            }
        }

        for (int i = 0; i < n; i++) {
            int sum = 0;
            int max = arr[i][0];
            int min = arr[i][0];
            for (int j = 0; j < arr[i].length; j++) {
                sum += arr[i][j];
                if (arr[i][j] > max) {
                    max = arr[i][j];
                }
                if (arr[i][j] < min) {
                    min = arr[i][j];
                }
            }
            System.out.println(String.format("%.2f %.2f %.2f", (double) sum / arr[i].length, (double) max, (double) min));
        }
    }
}


http://www.niftyadmin.cn/n/5681617.html

相关文章

即时通讯中 有哪些常见的推送错误信息及解决方案?

在Uni-app集成IM SDK时&#xff0c;后台运行收不到推送通知的问题可能由多种原因引起&#xff0c;以下是一些常见的错误信息及解决方案&#xff1a; 推送服务未开启或配置错误&#xff1a;确保已经在IM控制台开启了推送服务&#xff0c;并且正确配置了推送证书或密钥。 设备未…

智驭未来·电网负荷智控系统

1.产品介绍 产品名称:智驭未来电网负荷智控系统 主要功能: 高精度电力负荷预测 功能描述:利用先进的人工智能算法(如深度学习、时间序列分析等),结合历史负荷数据、天气信息、节假日因素及社会经济指标等多维度数据源,实现对未来短期(如日、周)及中长期(如月、季)…

构建高可用和高防御力的云服务架构第二部分:SLB负载均衡(2/5)

在现代云服务中&#xff0c;负载均衡&#xff08;Load Balancing&#xff09;是一种关键技术&#xff0c;用于优化资源利用、最小化响应时间、提高系统的可伸缩性和可靠性。负载均衡器位于客户端和服务器之间&#xff0c;根据预设的策略将请求分发到多个服务器上&#xff0c;以…

无环SLAM系统集成后端回环检测模块(loop):SC-A-LOAM以及FAST_LIO_SLAM

最近在研究SLAM目标检测相关知识&#xff0c;看到一篇论文&#xff0c;集成了SC-A-LOAM作为后端回环检测模块&#xff0c;在学习了论文相关内容后决定看一下代码知识&#xff0c;随后将其移植&#xff0c;学习过程中发现我找的论文已经集成了回环检测模块&#xff0c;但是我的另…

Killing LeetCode [416] 分割等和子集

Description 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集&#xff0c;使得两个子集的元素和相等。 Intro Ref Link&#xff1a;https://leetcode.cn/problems/partition-equal-subset-sum/description/ Difficulty&#xff1a;Med…

detectron2是怎么建立模型的?以SparseInst代码为例【结论版】

看SparseInst论文发现论文里有些地方没讲清楚&#xff1b;遂找SparseInst源码来看模型结构 我选择从推理代码来找模型结构&#xff1a; 经探索&#xff0c;在SparseInst代码里&#xff0c;推理需要执行代码 python demo.py --config-file configs/sparse_inst_r50_base.yaml …

Android常用C++特性之std::none_of

声明&#xff1a;本文内容生成自ChatGPT&#xff0c;目的是为方便大家了解学习作为引用到作者的其他文章中。 std::none_of 是 C 标准库中的一个算法&#xff0c;用于检查范围中的所有元素是否都不满足指定的条件。如果范围内的所有元素都不满足给定的条件&#xff0c;则返回 t…

图灵完备-奇数个信号

前言&#xff1a;我不知道背后逻辑&#xff0c;我没有推测完成&#xff0c;但我成功了。 奇数个信号是图灵完备游戏-成对的麻烦的下一个关卡&#xff0c;大意是在四个输入中&#xff0c;只有奇数个输入true才返回true&#xff0c;否则返回false。关卡要求只能使用三个逻辑元件…