蓝桥杯模拟

server/2024/11/24 0:08:03/

【问题描述】

如果一个数 p 是个质数,同时又是整数 a 的约数,则 p 称为 a 的一个质因数。

请问 2024 有多少个质因数。

【答案提交】

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

3

【问题描述】

对于一个整数 n ,我们定义一次开根变换会将 n 变为开根号后的整数部分。即变为平方和不超过 n 的数中的最大数。

例如,20 经过开根变换将变为 4 ,如果再经过一次开根变换将变为 2 ,如果再经过一次开根变换将变为 1 。

请问,2024经过多少次开根变换后会变为 1 ?

【答案提交】

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

  • 答案 4

【问题描述】

小蓝有很多 1x1x1 的小立方体,他可以使用多个立方体拼成更大的立方体。

例如,小蓝可以使用 8 个小立方体拼成一个大立方体,每边都是 2 个。

又如,小蓝可以使用 27 个小立方体拼成一个大立方体,每边都是 3 个。

现在,小蓝有 2024 个小立方体,他想再购买一些小立方体,用于拼一个超大的立方体,要求所有的小立方体都用上,拼成的大立方体每边长度都相等。

请问,小蓝最少需要购买多少个小立方体?

【答案提交】

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

173

如果一个日期的日期以 1 结尾(1日、11日、21日、31日)且为星期一,则称这个日期为一好日期。

请问从 1901 年 1 月 1 日至 2024 年 12 月 31 日总共有多少个一好日期。

提示:1901 年 1 月 1 日是星期二。

【答案提交】

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

  • 答案  762

填空题

【问题描述】

两个数按位异或是指将这两个数转换成二进制后,最低位与最低位异或作为结果的最低位,次低位与次低位异或作为结果的次低位,以此类推。

例如,3 与 5 按位异或值为 6 。

小蓝有以下 30 个整数:

9226, 4690, 4873, 1285, 4624, 1596, 6982, 590, 8806, 121, 8399, 8526, 5426, 64, 9655, 7705, 3929, 3588, 7397, 8020, 1311, 5676, 3469, 2325, 1226, 8203, 9524, 3648, 5278, 8647.

小蓝想找一个整数 V ,使得 V 与这 30 个数分别异或后,得到的 30 个数的平方和最小。请问平方和最小是多少?

【答案提交】

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

  • 答案 1070293541

【问题描述】

小蓝在一个停车场停车。

停车场的收费规则为:每 15 分钟收费 2 元,不满 15 分钟的不收费。

小蓝总共停车 n 分钟,请问收费总额是多少?

【输入格式】

输入一行包含一个整数 n ,表示小蓝停车的时长。

【输出格式】

输出一行包含一个整数,表示停车费用。

【样例输入】

150

【样例输出】

20

#include <stdio.h>
#include <stdlib.h>

int main(){
    
    int i = 0 ;
    int a = 0; //时间
    int sum = 0 ; //收费
    scanf("%d",&a);//获取收入的时间
    if(a>=15){
        i= a/15; //获取单位时间
        sum = 2*i;
        printf("%d",sum);
    }else{
        sum = 0;
         printf("%d",sum);
    }
    return 0 ;
}

【问题描述】

小蓝有一个整数 n ,每次操作,可以将这个整数的每个非零数位减少 1 。

请问经过多少次操作,这个数会变为 0 。

例如,整数 2024 经过一次操作变为 1013,再经过一次操作变为 2 (即0002),再经过两次操作变为 0 ,总共经过 4 次变换变为 0 。

【输入格式】

输入一行包含一个整数 n 。

【输出格式】

输出一行,包含一个整数,表示答案。

【样例输入】

2024

【样例输出】

4

#include <stdlib.h>
#include <stdio.h>
int main(){
    int a1 = 0,a2 = 0,a3 = 0,a4 = 0;//取千位,百位,十位,个位
    int b1 = 0;//获取输入的值
    int n = 0;//记录变换多少次
    scanf("%d",&b1);
    while(b1!=0){
        a1=b1/1000;
         a2=((b1/100)%10);
         a3=((b1%100)/10);
          a4=b1%10;
        //取千位
        if(a1>0){
            
            a1 = a1-1;
        }
        if(a2>0){  //百位 
           
            a2 = a2-1;
        }
        if(a3>0){ //十位
           
            a3 = a3-1;
        }
        if(a4>0){ //个位 
            a4 = a4-1;
        }
        //判断是否跳出循环
        b1 = (a1*1000)+(a2*100)+(a3*10)+a4;
        n++;
      
    }
     printf("%d",n);
    return 0;
}

小蓝有一个减法式子,形如 a-b,其中 a 和 b 都是非负整数(不保证结果非负)。

请编程处理这个式子,输出运算结果。

【输入格式】

输入一行包含一个减法表达式,式子中仅含数字字符和一个减号。

【输出格式】

输出一行包含一个整数,表示运算结果。

【样例输入】

2024-1949

【样例输出】

75

【样例输入】

20-24

【样例输出】

-4

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

int main() {
    char expression[100]; // 存放输入的字符串
    scanf("%s", expression);

    // 找到减号的位置
    char *minusSign = strchr(expression, '-');
    if (minusSign == NULL) {
        printf("输入错误\n");
        return 1;
    }

    // 将减号前后的字符串转换为整数
    char *aStr = expression;
    char *bStr = minusSign + 1;

    int a = atoi(aStr);
    int b = atoi(bStr);

    // 计算减法结果
    int result = a - b;

    // 输出结果
    printf("%d\n", result);

    return 0;
}

【问题描述】

小蓝有一个长度为 n 的整数数列 a[1], a[2], ..., a[n] 。

对于一个给点的整数 k ,小蓝想找到相邻间隔为 1 的 k 个数 a[p], a[p+2], a[p+4], ..., a[p+2k-2],使得他们的和最大。其中 1 <= p <= n-2k+2。

给定数列和 k ,请问给出最大的和。

【输入格式】

输入的第一行包含一个整数 n 。

第二行包含 n 个整数,相邻数之间使用一个空格分隔,依次表示 a[1], a[2], ..., a[n] 。

第三行包含一个整数 k 。

【输出格式】

输出一行,包含一个整数,表示答案。

【样例输入】

10
2 1 4 7 4 8 3 6 4 7
2

【样例输出】

15

【样例说明】

取 p=4,a[4]+a[6]=7+8=15 最大。

#include <stdio.h>
#include <stdlib.h>

// 计算给定数列中满足条件的相邻间隔为1的k个数的最大和
int maxsum(int *a, int n, int k) {
    int maxsumvalue = 0;
    int currentsum = 0;

    // 计算初始窗口内元素的和
    for (int i = 0; i < 2 * k - 1; i += 2) {
        currentsum += a[i];
    }
    maxsumvalue = currentsum;

    // 更新最大和
    for (int p = 1; p < n - 2 * k + 2; p++) {
        currentsum = currentsum - a[p - 1] + a[p + 2 * k - 2];
        if (currentsum > maxsumvalue) {
            maxsumvalue = currentsum;
        }
    }

    return maxsumvalue;
}

int main() {
    int n, k;

    // 获取数列长度n
    
    scanf("%d", &n);

    // 获取k值
  
    scanf("%d", &k);

    // 动态分配数组内存以存储数列
    int *a = (int *)malloc(n * sizeof(int));
    if (a == NULL) {
        
        return 1;
    }

    // 获取数列的元素
   
    for (int i = 0; i < n; i++) {
        scanf("%d", &a[i]);
    }

    // 计算并输出最大和
    int result = maxsum(a, n, k);
    printf("%d\n", result);

    // 释放动态分配的内存
    free(a);

    return 0;
}

【问题描述】

小蓝有一个长度为 n 的整数序列 a[1], a[2], ..., a[n] 。

他希望从中找出一个最长的子序列,形成一个勾的形状(√)。

即找到 1 <= p[1] < p[2] < ... < p[k] <= n,满足 a[p[1]] > a[p[2]] > a[p[3]] > ... > a[p[x]] < a[p[x+1]] < ... < a[p[k]] 。其中 k 是子序列的长度,x 是勾中最小的位置。目标是使得 k 最大。

请找出最大的勾的长度。

【输入格式】

输入的第一行包含一个整数 n 。

第二行包含 n 个整数,相邻数之间使用一个空格分隔,依次表示 a[1], a[2], ..., a[n] 。

【输出格式】

输出一行,包含一个整数,表示答案。

【样例输入】

10
2 1 4 7 4 8 3 6 4 7

【样例输出】

5

【样例说明】

当 p = (4,5,7,9,10) 时,a[4] , a[5] , a[7] , a[9] , a[10] 可形成一个长度为 5 的勾:7,4,3,6,7。

#include <stdio.h>
#include <limits.h>

int main() {
    int n;
    scanf("%d", &n);

    int a[n];
    for (int i = 0; i < n; i++) {
        scanf("%d", &a[i]);
    }

    // 计算以每个位置为结尾的最长上升子序列长度
    int lis[n];
    for (int i = 0; i < n; i++) {
        lis[i] = 1;
        for (int j = 0; j < i; j++) {
            if (a[j] < a[i]) {
                lis[i] = lis[i] > lis[j] + 1 ? lis[i] : lis[j] + 1;
            }
        }
    }

    // 计算以每个位置为起始的最长下降子序列长度(注意这里是从右到左遍历)
    int lds[n];
    for (int i = n - 1; i >= 0; i--) {
        lds[i] = 1;
        for (int j = n - 1; j > i; j--) {
            if (a[j] < a[i]) {
                lds[i] = lds[i] > lds[j] + 1 ? lds[i] : lds[j] + 1;
            }
        }
    }

    // 找到最长的“勾”
    int maxHookLength = 0;
    for (int i = 1; i < n - 1; i++) { // 注意从1开始到n-2结束,因为我们需要有足够的空间来形成“勾”
        int hookLength = lis[i] + lds[i] - 1; // 减去1是因为i被重复计算了
        if (hookLength > maxHookLength) {
            maxHookLength = hookLength;
        }
    }

    printf("%d\n", maxHookLength);

    return 0;
}


http://www.ppmy.cn/server/144395.html

相关文章

2022 年中高职组“网络安全”赛项-海南省省竞赛任务书-1-B模块B-1-Windows操作系统渗透测试

前言 本章节我将带领大家一起重新模拟操作一次Windows渗透测试模块&#xff0c;并加固的流程。 任务概览 环境部署 我的实验复现环境&#xff1a; 服务器Windows server 2008 R2 攻击机Kali Linux 场景操作系统Windows 7 额外还有台交换机支持&#xff1a; 这里我使用的是…

Unreal从入门到精通之如何绘制用于VR的3DUI交互的手柄射线

文章目录 前言实现方式MenuLaser实现步骤1.Laser和Cursor2.移植函数3.启动逻辑4.检测射线和UI的碰撞5.激活手柄射线6.更新手柄射线位置7.隐藏手柄射线8.添加手柄的Trigger监听完整节点如下:效果图前言 之前我写过一篇文章《Unreal5从入门到精通之如何在VR中使用3DUI》,其中讲…

web——sqliabs靶场——第十二关——(基于错误的双引号 POST 型字符型变形的注入)

判断注入类型 a OR 1 1# 发现没有报错 &#xff0c;说明单引号不是闭合类型 测试别的注入条件 a) OR 1 1# a)) OR 1 1# a" OR 11 发现可以用双引号闭合 发现是")闭合 之后的流程还是与11关一样 爆破显示位 先抓包 是post传参&#xff0c;用hackbar来传参 unam…

《Spring Cloud 微服务》

一、引言 在现代软件开发中&#xff0c;微服务架构已成为主流趋势。Spring Cloud 作为构建微服务架构的强大工具集&#xff0c;提供了一系列组件和解决方案&#xff0c;帮助开发者轻松构建、部署和管理分布式系统。本文将深入介绍 Spring Cloud 的核心概念、主要组件、工作原理…

指南: 如何在 MEV 项目中使用 Yul

这对我来说是一个反复出现的故事。我学习了一些 Solidity&#xff0c;发现了一个我想要研究的服务。代码看起来是这样的&#xff1a; Seaport Core: BasicOrderFulfiller.sol Solidity 代码在哪里&#xff1f;人们似乎不再使用普通的 Solidity 代码了 &#x1f972; 这种在智能…

javaScriptBOM

1、BOM概述 1.1、BOM简介 BOM&#xff08;browser Object&#xff09;即浏览器对象模型&#xff0c;它提供了独立于内容而与浏览器窗口进行交互的对象&#xff0c;其核心对象是window。 BOM由一系列的对象构成&#xff0c;并且每个对象都提供了很多方法与属性 BOM缺乏标准&…

C#桌面应用制作计算器进阶版01

基于C#桌面应用制作计算器做出了少量改动&#xff0c;其主要改动为新增加了一个label控件&#xff0c;使其每一步运算结果由label2展示出来&#xff0c;而当点击“”时&#xff0c;最终运算结果将由label1展示出来&#xff0c;此时label清空。 修改后运行效果 修改后全篇代码 …

利用浏览器录屏

以下内容参考自网络 <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title></title> </head> <body> <div class"left"> <di…