【秋招笔试】24-07-27-科大讯飞提前批-研发岗笔试题

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员

💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导

✨ 本系列打算持续跟新 秋招笔试题

👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸

总结

本次的笔试难度跨度较大,前两题比较简单,最后一题需要 前缀和优化DP 解决,其中 PythonJava 在笔试中据说会超时(Cpp 选手狂喜)

alt

😒 01.心情管理大师

问题描述

K小姐是一名心理咨询师,她最近在研究人们的心情变化规律。她发现,当一个人连续工作时,每天的心情指数会下降 点;而当这个人休息一天时,心情指数会上升1点。

K小姐想要帮助她的客户A先生进行心情管理。A先生目前的心情指数为0,他计划先连续工作 天,然后开始休假。K小姐想知道,从A先生开始工作到他的心情指数再次回到0,总共需要多少天。

请你帮助K小姐编写一个程序,计算出这个天数。

输入格式

第一行给出测试用例的数量

随后 行,每行给出 的值,用空格分隔。

输出格式

输出 行,每行一个整数,表示对应测试用例的答案。

样例输入

2
2 3
3 1

样例输出

9
4

数据范围

题解

  1. 计算 天工作后的心情指数变化:

  2. 计算需要多少天休息才能让心情指数回到0:

  3. 3总天数就是工作天数加上休息天数:

因此,我们可以直接用公式 计算出结果。

参考代码

  • Python
def solve():
    # 读取输入的 a 和 b 值
    a, b = map(int, input().split())
    # 计算并输出结果
    print(b * (a + 1))

# 读取测试用例数量
t = int(input())
# 循环处理每个测试用例
for _ in range(t):
    solve()
  • Java
import java.util.Scanner;

public class Main {
    public static void solve(Scanner sc) {
        // 读取输入的 a 和 b 值
        int a = sc.nextInt();
        int b = sc.nextInt();
        // 计算并输出结果
        System.out.println(b * (a + 1));
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // 读取测试用例数量
        int t = sc.nextInt();
        // 循环处理每个测试用例
        while (t-- > 0) {
            solve(sc);
        }
        sc.close();
    }
}
  • Cpp
#include <iostream>
using namespace std;

void solve() {
    int a, b;
    // 读取输入的 a 和 b 值
    cin >> a >> b;
    // 计算并输出结果
    cout << b * (a + 1) << endl;
}

int main() {
    int t;
    // 读取测试用例数量
    cin >> t;
    // 循环处理每个测试用例
    while (t--) {
        solve();
    }
    return 0;
}

📝 02.密码学家的挑战

问题描述

K小姐是一位密码学家,她最近在研究一种特殊的加密方法。这种方法将一个十进制数转换为不同进制(2 到 36 进制)的表示,其中 A 表示 10,B 表示 11,以此类推,Z 表示 35。

K小姐发现,某些数字在特定进制下的表示中只包含一个数字 1。她想知道,对于给定的十进制数 ,在所有 2 到 36 进制的表示中,最多可以包含多少个数字 1。

请你帮助 K小姐编写一个程序,计算出这个最大值。

输入格式

输入一行,包含一个整数 ),表示给定的十进制数。

输出格式

输出一行,包含一个整数,表示在 2 到 36 进制的所有表示中,数字 1 出现次数的最大值。

样例输入

4

样例输出

2

样例说明

时,在 3 进制下表示为 ,包含两个 1,这是最多的情况。

数据范围

题解

  1. 对于给定的十进制数 ,遍历 2 到 36 的所有进制。

  2. 对于每种进制,将 转换为该进制的表示,并统计其中 1 的个数。

  3. 记录所有进制中 1 的个数的最大值。

关键在于如何高效地进行进制转换和计数。可以使用除法和取模运算来实现进制转换,同时统计 1 的出现次数。

时间复杂度分析:对于每个数 ,需要尝试 35 种进制(2 到 36),每次转换的时间复杂度为 。因此总的时间复杂度为

参考代码

  • Python
def solve():
    # 读取输入的十进制数
    n = int(input())
    # 初始化最大1的个数为0
    max_ones = 0
    
    # 遍历2到36的所有进制
    for base in range(2, 37):
        num, ones = n, 0
        # 进行进制转换,同时统计1的个数
        while num:
            if num % base == 1:
                ones += 1
            num //= base
        # 更新最大1的个数
        max_ones = max(max_ones, ones)
    
    # 输出结果
    print(max_ones)

# 调用主函数
solve()
  • Java
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // 读取输入的十进制数
        int n = sc.nextInt();
        // 初始化最大1的个数为0
        int maxOnes = 0;
        
        // 遍历2到36的所有进制
        for (int base = 2; base <= 36; base++) {
            int num = n, ones = 0;
            // 进行进制转换,同时统计1的个数
            while (num > 0) {
                if (num % base == 1) {
                    ones++;
                }
                num /= base

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

学长刷题笔记 文章被收录于专栏

这里收集了超全的刷题笔记,欢迎大家的订阅,会持续跟新的

全部评论

相关推荐

09-29 17:39
已编辑
门头沟学院 Java
BG:双9,一段携程后端实习【流程】9.7笔试,9.26一面&nbsp;9.29二面【一面】自我介绍实习项目介绍及问题延申:责任链设计模式;模版模式;模板方法为啥要抽象出来;redis库存管理decr和加锁;redis&nbsp;setnx用的k-v是啥;setnx会有并发效率很低的问题吗,有更好的改进效率的方案吗;redis&nbsp;超时失败如何处理;redis中不知道是不是执行成功是抛异常还是继续流程;为什么用kafka不用其他的消息队列;kafka消息丢失怎么办;压测怎么测试流量;非科班一般遇到计算机领域的知识不懂怎么解决部分八股:threadlocal的原理,key和value是什么;hashmap的初始化大小,扩容机制是怎样的,为什么扩容得是原来的2倍;java集合;final,finally和finalize;操作数组时如何边遍历边移除;死锁的发生的必要条件和手段;手撕一道:重排链表,双指针做的,问有没有无需额外空间的做法(左右部分逆序&nbsp;找中点)额外:为什么想做后端开发;抗压能力强的例子;付出了很多但是结果不符合预期怎么办是一位很温柔的小姐姐,体验感很好~【二面】自我介绍实习项目介绍&nbsp;实习里遇到比较困难的点&nbsp;主要是对具体所做一些业务的延伸&nbsp;大概快半小时线程池的原理线程池核心线程数是5&nbsp;任务执行完线程状态是什么&nbsp;这个时候如果有新的任务提交应该怎么执行主线程提交任务整体流程手撕一道伪代码的题热点数据获取,10s内出现1000次的数据视为热点数据,如果缓存有数据直接读缓存,缓存没有直接读数据库应该是部门的负责人,感觉很多技术深度问的比较多,人很友善,一开始手撕思路写错了还提示了一下🥹
点赞 评论 收藏
分享
头像
09-28 20:49
门头沟学院 Java
海边的贝壳1:1 0.87 1
投递科大讯飞等公司10个岗位
点赞 评论 收藏
分享
3 7 评论
分享
牛客网
牛客企业服务