刷题之莲子的软件工程学和机械动力学以及物理热力学_莲子的物理热力学

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

1、莲子的软件工程学

1)题目

题目背景

在宇宙射线的轰击下,莲子电脑里的一些她自己预定义的函数被损坏了。

对于一名理科生来说,各种软件在学习和研究中是非常重要的。为了尽快恢复她电脑上的软件的正常使用,她需要尽快地重新编写这么一些函数。

输入格式

  • 共一行两个整数 a,b。

输出格式

  • 共一行一个整数fun(a,b) 的值。

说明/提示

对于全部数据,保证 a,b 在 32 位有符号整型范围内,并且 b ≠0。

2)题目解析

题目意思就是由b来确定a的正负号,并输出其结果,a,b是32 位有符号整型的数,其范围是 -231~231-1。因此我们应该使用long作为a,b的基本数据类型。

3)代码

import java.util.Scanner;

public class Main {
    public static void main1(String[] args) {
        Scanner sc=new Scanner(System.in);
        long a=sc.nextInt();
        long b=sc.nextInt();
        if (b>0){
            System.out.println(Math.abs(a));
        }else if (b<0){
            System.out.println(Math.abs(a)*-1);
        }
    }
}

2、莲子的机械动力学

题目描述

题目背景的问题可以转化为如下描述:

给定两个长度分别为 n,m的整数 a,b,计算它们的和。

但是要注意的是,这里的 a,b 采用了某种特殊的进制表示法。最终的结果也会采用该种表示法。具体而言,从低位往高位数起,第 ii 位采用的是 i+1进制。换言之,相较于十进制下每一位的「逢 10进 1」,该种进制下第 i 位是「逢 i+1 进 1」。

下图所示,左边是十进制的竖式加法;右边是这种特殊进制的竖式加法。图中的红色加号表示上一位发生了进位。

输入格式

  • 第一行有两个整数n,m,分别表示 aa 和 bb 的位数。
  • 第二行有 n个整数,中间用空格隔开,从高到低位描述 a 的每个数码。
  • 第三行有 m 个整数,中间用空格隔开,从高到低位描述 b 的每个数码。

输出格式

  • 输出有若干个整数,从高到低位输出 a+b 在这种特殊表示法下的结果。

说明/提示

对于全部数据,保证 1≤n,m≤2×10^5,从低位往高位数起有 ai​∈[0,i],bi∈[0,i]。请使用 Java 或 Python 语言作答的选手注意输入输出时的效率。

2)题目解析

通读题目我们可以知道低位往高位数进制从2逐1递增,也就是最低位数是二进制的,要满2进1;倒数第二位数是三进制的,要满3进1;倒数第三位数是四进制的,要满4进1······第一位数是a,b最长数的 长度+1进制。

需要特别小心的是第一位数是否要再进一位。

3)代码

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int a=sc.nextInt();
        int b=sc.nextInt();
        //创建相应长度的数组
        int []ar1=new int[a];
        int []ar2=new int[b];
        for (int i=0;i<ar1.length;i++){
            ar1[i]=sc.nextInt();
        }
        for (int i=0;i<ar2.length;i++){
            ar2[i]=sc.nextInt();
        }
        //默认ar1是最长数的数组,寻找出a,b的最大值,并交换
        int max=Math.max(a,b);
        int []arr;
        if (max==b){
            arr=ar1;
            ar1=ar2;
            ar2=arr;
        }
        int count=0;//判断是否需要进位
        int t=2;    //当前的进制位
        //从后面开始循环,其结果存入ar1数组中
        for (int i=1;i<=ar1.length;i++){
            int x=ar1[ar1.length-i];
            if (i<=ar2.length){  //判断长度更小的数组是否存在越界
                ar1[ar1.length-i]=(x+ar2[ar2.length-i]+count)%t;
                count=(x+ar2[ar2.length-i]+count)/t;
            }else {
                ar1[ar1.length-i]=(x+count)%t;
                count=(x+count)/t;
            }
            t++;
        }
        //判断第一位数是否超出该进制的范围,并输出
        if (count!=0){
            System.out.print(count+" ");
        }
        for (int j=0;j<ar1.length-1;j++){
            System.out.print(ar1[j]+" ");
        }
        System.out.print(ar1[ar1.length-1]);
    }
}

3、莲子的物理热力学

1)、题目

题目背景

莲子正在研究分子的运动。

每个分子都有一个速度,约定正方向为正,负方向为负。分子的数量极多,速度又并不一致,看上去杂乱无章。于是莲子希望调整部分分子的速度,使得最终分子们看上去整齐。

输入格式

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

-1715730967090)]
[外链图片转存中…(img-b6Xi04Mr-1715730967090)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值