od机试题目

od试题

日志采集

思路:

处理输入:

Scanner 拿到整个输入

放入string[] 按照" "分隔

调用Integer.parseInt 将string转int类型

解题:

用一个变量count记录当前日志数量,初始为输入的第一个参数

用一个max变量 记录最大积分,初始为输入的第一个参数

判断如果count大于100 输出100

(第一条日志就大于100 必须立刻上报 当前分数也是100)

for循环i

count等于之前count+第i个数字 如果count大于100 比较之前的max和100-之前晚报的分数(封函数 计算方法 core=0 for循环输入数组j到i 每次的core等于之前的core+这个数字乘i和j的距离)

else不大于100 比较max和count-之前晚报的分数

java 复制代码
public class Main13 {
    public static int[] ints;
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String[] split = sc.nextLine().split(" ");
        ints = new int[split.length];
        for (int i = 0; i < split.length; i++) {
            ints[i] = Integer.parseInt(split[i]);
        }
        //记录日志总数
        int count = ints[0];
        //最大积分
        int max = ints[0];
        if (count > 100) {
            System.out.println("100");
        } else {
            for (int i = 1; i < ints.length; i++) {
                count += ints[i];
                if (count > 100) {
                    max = Math.max(max, 100 - jisuan(i));
                    break;
                }else {
                    max = Math.max(max, count - jisuan(i));
                }
            }
        }


        System.out.println(max);
    }
    public static int jisuan(int index) {

        int core = 0;
        for (int i = 0; i < index; i++) {
            core += ints[i] * (index - i);
        }

        return core;
    }
}

TLV

css 复制代码
 TLV编码是按 Tag Length  Value格式进行编码的一段码流中的信元用tag标识,tag在码流中唯一不重复
 length表示信元value的长度  value表示信元的值
 码流以某信元的tag开头 ,tag固定占一个字节
 length固定占两个字节,字节序为小端序
 现给定tlv格式编码的码流以及需要解码的信元tag
 请输出该信元的value
 输入码流的16机制字符中,不包括小写字母
  且要求输出的16进制字符串中也不要包含字符字母
 码流字符串的最大长度不超过50000个字
 输入描述
     第一行为第一个字符串 ,表示待解码信元的tag
      输入第二行为一个字符串, 表示待解码的16进制码流
      字节之间用空格分割
  输出描述
      输出一个字符串,表示待解码信元以16进制表示的value
           例子:
           输入:
	            31
	            32 01 00 AE 90 02 00 01 02 30 03 00 AB 32 31 31 02 00 32 33 33 01 00 CC
           输出
            	32 33
           说明:
	           需要解析的信源的tag是31
	           从码流的起始处开始匹配,tag为32的信元长度为1(01 00,小端序表示为1)
	           第二个信元的tag为90 其长度为2
	           第三个信元的tag为30 其长度为3
	           第四个信元的tag为31 其长度为2(02 00)
	           所以返回长度后面的两个字节即可 为 32 33
c 复制代码
import java.util.*;
 
public class Test4 {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String tag = sc.nextLine();
        String[] split = sc.nextLine().split("\\s+");
 
        for(int i=0; i<split.length; ){
            int len = Integer.parseInt(split[i+2]+split[i+1],16);
            if(tag.equals(split[i])){
                StringBuilder bu = new StringBuilder();
                for(int j=i+3; j<i+3+len;j++){
                    bu.append(split[j]).append(" ");
                }
                System.out.println(bu.toString());
                break;
            }
            else{
                i+=len+3;
            }
        }
 
    }
}
相关推荐
是梦终空3 分钟前
JAVA毕业设计176—基于Java+Springboot+vue3的交通旅游订票管理系统(源代码+数据库)
java·spring boot·vue·毕业设计·课程设计·源代码·交通订票
落落落sss13 分钟前
sharding-jdbc分库分表
android·java·开发语言·数据库·servlet·oracle
码爸16 分钟前
flink doris批量sink
java·前端·flink
Monodye1 小时前
【Java】网络编程:TCP_IP协议详解(IP协议数据报文及如何解决IPv4不够的状况)
java·网络·数据结构·算法·系统架构
一丝晨光1 小时前
逻辑运算符
java·c++·python·kotlin·c#·c·逻辑运算符
无名指的等待7121 小时前
SpringBoot中使用ElasticSearch
java·spring boot·后端
Tatakai252 小时前
Mybatis Plus分页查询返回total为0问题
java·spring·bug·mybatis
武子康2 小时前
大数据-133 - ClickHouse 基础概述 全面了解
java·大数据·分布式·clickhouse·flink·spark
.生产的驴2 小时前
SpringBoot 消息队列RabbitMQ 消费者确认机制 失败重试机制
java·spring boot·分布式·后端·rabbitmq·java-rabbitmq
Code哈哈笑2 小时前
【C++ 学习】多态的基础和原理(10)
java·c++·学习