2024/1/28 备战蓝桥杯 1-3

目录

特殊日期

[0特殊日期 - 蓝桥云课 (lanqiao.cn)](#0特殊日期 - 蓝桥云课 (lanqiao.cn))

最大距离

[0最大距离 - 蓝桥云课 (lanqiao.cn)](#0最大距离 - 蓝桥云课 (lanqiao.cn))

最长递增

[0最长递增 - 蓝桥云课 (lanqiao.cn)](#0最长递增 - 蓝桥云课 (lanqiao.cn))

缩位求和

[0缩位求和 - 蓝桥云课 (lanqiao.cn)](#0缩位求和 - 蓝桥云课 (lanqiao.cn))

ISBN号码

[0ISBN号码 - 蓝桥云课 (lanqiao.cn)](#0ISBN号码 - 蓝桥云课 (lanqiao.cn))

串的处理

[0串的处理 - 蓝桥云课 (lanqiao.cn)](#0串的处理 - 蓝桥云课 (lanqiao.cn))

幸运数字(好抽象)

[0幸运数字 - 蓝桥云课 (lanqiao.cn)](#0幸运数字 - 蓝桥云课 (lanqiao.cn))


特殊日期

0特殊日期 - 蓝桥云课 (lanqiao.cn)

思路:模拟+暴力

注意:写函数的时候不要触发关键字了

完整代码:

cpp 复制代码
#include <bits/stdc++.h>
#define int long long
int summ(int n)
{
    int ans=0;
    while(n)
    {
        ans+=n%10;
        n/=10;
    }
    return ans;
}
signed main()
{
    int num=0;
    int year[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    for(int i = 1900;i <=9999;i ++)
    {
        if((i%4==0&&i%100!=0)||i%400==0)
        {
            year[2]=29;
        }
        else
            year[2]=28;
        for(int j = 1;j <= 12;j ++)
        {
            for(int k = 1;k <= year[j];k ++)
            {
                if(summ(i)==summ(j)+summ(k))
                {
                    num++;
                }
            }
        }
    }
    std::cout<<num;
    return 0;
}

最大距离

0最大距离 - 蓝桥云课 (lanqiao.cn)

思路:模拟+暴力

完整代码:

cpp 复制代码
#include <bits/stdc++.h>
#define int long long
const int N = 1e4+10;
int a[N];
signed main()
{
    int n;
    int maxx=-99999;
    std::cin >> n;
    for(int i = 1;i <= n;i ++)
    {
        std::cin >> a[i];
    }
    for(int i = 1;i <= n;i ++)
    {
        for(int j = 1;j <= n;j ++)
        {
            maxx=std::max(abs(i-j)+abs(a[i]-a[j]),maxx);
        }
    }
    std::cout<<maxx;
    return 0;
}

最长递增

0最长递增 - 蓝桥云课 (lanqiao.cn)

思路:模拟+暴力

注意判断什么时候计数的长度应该+1,什么时候应该更新要输出的最大值

完整代码:

cpp 复制代码
#include <bits/stdc++.h>
#define int long long
const int N = 1e4+10;
int a[N];
signed main()
{
    int n;
    int num=1;
    int maxx=-99999;
    std::cin >> n;
    for(int i = 1;i <= n;i ++)
    {
        std::cin >> a[i];
    }
    for(int i = 2;i <= n;i ++)
    {
       if(a[i]>a[i-1])
           num++;
       else
       {
           maxx=std::max(maxx,num);
           num=1;
       }
    }
    std::cout<<maxx;
    return 0;
}

缩位求和

0缩位求和 - 蓝桥云课 (lanqiao.cn)

思路:暴力+模拟

注意:输入的数字有可能很大,要用字符串来存

完整代码:

cpp 复制代码
#include <bits/stdc++.h>
#define int long long
int fun(int sum)
{
    int ans=0;
    while(sum!=0) {
        ans += sum % 10;
        sum /= 10;
    }
    return ans;
}
signed main()
{
    std::string s;
    std::cin >> s;
    int n = s.length();
    int sum=0;
    for(int i = 0;i < n;i ++)
    {
        sum+=s[i]-'0';
    }
    while(sum!=0)
    {
        sum=fun(sum);
        if(sum/10==0)
        {
            break;
        }
    }
    std::cout<<sum;
    return 0;
}

ISBN号码

0ISBN号码 - 蓝桥云课 (lanqiao.cn)

思路:暴力+模拟

注意:仔细读题,题目中说到了ans%11==10的时候,最后一位就要改为大写的X

完整代码:

cpp 复制代码
#include <bits/stdc++.h>
#define int long long
const int N = 110;
int a[N];
signed main()
{
    std::string s;
    std::cin >> s;
    s=" "+s;
    int k = 1;
    for(int i = 1;i <= 13;i ++)
    {
        if(i==2||i==6||i==12)
            continue;
        else
            a[k++]=s[i]-'0';
    }
    int ans=0;
    for(int i = 1;i <= 9;i ++)
    {
        ans+=i*a[i];
    }
    if(ans%11==10)
    {
        if(s[13]=='X')
        {
            std::cout<<"Right";
        }
        else
        {
            s[13]='X';
            std::cout<<s;
        }
    }
    else if(ans%11==s[13]-'0')
    {
        std::cout<<"Right";
    }
    else
    {
        s[13]=ans%11+'0';
        std::cout<<s;
    }
    return 0;
}

串的处理

0串的处理 - 蓝桥云课 (lanqiao.cn)

思路:模拟+暴力

注意:

可以试试特例:l1 l2 l3

t它的输出应该是L_1 L_2 L_3

完整代码:

cpp 复制代码
#include<bits/stdc++.h>
#define int long long
signed main()
{
    std::string s;
    getline(std::cin,s);
    int n = s.length();
    s=" "+s;
    int flag=0;
    for(int i = 1;i <= n;i ++)
    {
        if(s[i-1]==' '&&s[i]==' ')
        {
            continue;
        }
        if(s[i-1]==' '&&s[i]>='a'&&s[i]<='z')
        {
            s[i]=toupper(s[i]);
        }
        if(((s[i-1]>='a'&&s[i-1]<='z')||(s[i-1]>='A'&&s[i-1]<='Z'))&&s[i]-'0'>=0&&s[i]<='9')
        {
            std::cout<<"_";
        }
        if(s[i-1]-'0'>=0&&s[i-1]-'0'<=9&&((s[i]>='a'&&s[i]<='z')||(s[i]>'A'&&s[i]<='Z')))
        {
            std::cout<<"_";
        }
        std::cout<<s[i];
    }
    return 0;
}

幸运数字(好抽象)

0幸运数字 - 蓝桥云课 (lanqiao.cn)

好抽象,懂了但好像没完全懂

完整代码:

cpp 复制代码
#include <bits/stdc++.h>
#define int long long
int fun(int N,int a)//把十进制N转化为a进制字符串
{
    int sum=0;
    while(N!=0)
    {
        sum+=N%a;
        N/=a;
    }
    return sum;
}
signed main()
{
    int sum,N;
    for(int i = 1,N=1;N <= 2023;i ++)
    {
        if(i%fun(i,2)==0&&i%fun(i,8)==0&&i%fun(i,10)==0&&i%fun(i,16)==0)
        {
            N++;
            sum=i;
        }
    }
    std::cout<<sum;
    return 0;
}
相关推荐
闻缺陷则喜何志丹2 分钟前
【动态规划】P3609 [USACO17JAN] Hoof, Paper, Scissor G
c++·算法·动态规划·洛谷
AAA代码批发商11 分钟前
Days 39 Linux C 开发之 SQLite 数据库完整学习笔记
linux·c语言·数据库
汉克老师20 分钟前
CSP-J 初赛(以满分为目标):第二十六课 《图的遍历——DFS深度优先搜索——从“树的先序遍历”走进真正的图世界》
c++·csp-j·小学生·学c++编程
程序猿编码26 分钟前
基于GGML的C++17轻量化语音推理引擎:说话人识别与语音分析技术全解析
开发语言·c++·pytorch·深度学习·神经网络·大模型
leihefeng32 分钟前
手写数字识别:KNN vs 逻辑回归实战
python·算法·机器学习·逻辑回归·scikit-learn
影视飓风TIM1 小时前
C++哈希表深度剖析:冲突处理、rehash、迭代器与unordered容器封装
c++·哈希算法·散列表
全栈技术负责人1 小时前
DeepSeek Harness 业务工具权限插件 dsh-tool-permission设计思路
网络·算法·ai·ai编程
mmmmath_31 小时前
面试题 02.07. 链表相交
算法·链表
C++ 老炮儿的技术栈1 小时前
Qt5 使用 QPainter 绘制阿基米德螺线
开发语言·c++·windows·qt·代码化
卢锡荣2 小时前
单芯掌控多口互联|乐得瑞 LDR6020 PD3.1 多通道 Type‑C 控制 SOC 芯片
c语言·开发语言