简单算法题(基础入门题)

第一题:

第一题的话我觉得对于刚入门的小白问题也不大,但就是要注意两个细节:10的16次方得用long long(int肯定不行,long的话没试过,但感觉有风险)。还有就是只能写2*a>b,千万不要写a>b/2,原因很简单,就是因为整数除法会向下取整。

示例代码(仅供参考):

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;

int main() {
    long long a,b;
    cin>>a>>b;
    if (2*a>b) {
        cout<<"Too Tang";
    }
    else{
        cout<<"Not Tang";
    }
    return 0;
}

第二题:

第二题的话读懂题也是相当简单(不信的朋友可以去找一些大模拟题 就知道我为什么这么说了),但这道题其实也有几个易踩坑点:这道题的字符串含有空格,所以我们不能采取常规的cin>>s输入(否则遇到空格就停止读取了,后面的输入都无效了),然后我用的是getline(cin,s)这个方法。还有就是解释一下:for(char c : s){......},这个叫范围for循环,用来遍历字符串s中的每个字符。

示例代码(仅供参考):

cpp 复制代码
#include<bits\stdc++.h>
using namespace std;

int main() {
    string s;
    getline(cin, s);   //不用cin>>s的原因是,这道题含有空格,而cin>>s遇到空格就要停止读取
    for (char c : s) {
        if (c>='A'&&c<='Z') {
            //在 C++ 中有一个非常重要的规则:当char参与数学运算时,它会被自动"升级"成int
            cout<<(char)(c+32);
        }
        if (c>='a'&&c<='z'||c==' ') {
             cout<<c;
        }
        //注意,删除数字这一操作我们压根就不用管他了,因为我们不输出数字就相当于删除数字了
    }
    return 0;
}

第三题:

对于第三题而言,其实是一种经典的模板变形题,不知道大家看出来没有。对于将学C语言的大一学弟们而言,你们老师今后肯定会跟你们出一道经典的例题:找出最大数(当然后续还会让你们进行排序,这是你们又将接触到冒泡排序,选择排序,插入排序,快速排序等等等等)。当然,我们言归正传,做这种找最大值的题,我们只需定义一个max(最大值),定义一个current(当前值),二者先置零,一旦我们的current>max,我们就去更新最大值(即把我们的current的值赋给我们的max),然后不断迭代,直到over。

示例代码(仅供参考):

cpp 复制代码
#include<bits/stdc++.h>
using  namespace std;

int main() {
    int n;
    cin>>n;
    int max_len = 0;     // 历史最长连续 1 的个数
    int current_len = 0; // 当前连续 1 的个数
    for(int i=0;i<n;i++) {
        int a;
        cin>>a;
        if (a==1) {
            current_len++;
            if (current_len>max_len) {
                max_len=current_len;
            }
        }
        else {
            current_len=0;  //
        }
    }
    cout<<max_len<<endl;
    return 0;
}

第四题:

第四题的话更简单,只要你会计数,就能做,我就不再介绍这道题了。

示例代码(仅供参考):

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;

int main() {
    int n;
    long long count=0;
    long long x;
    cin>>n;
    string op;
    for (int i=1;i<=n;i++) {
        cin>>op>>x;
        if (op=="in")
            count+=x;
        if (op=="out")
            if (count-x>=0)
            count-=x;
        cout<<count<<"\n";
    }
    return 0;
}

第五题:

第五题的话有点意思,做法也有很多。我来说说我的想法:我开了个计数器数组,并初始化为0,因为这道题是经典的**小值域频次统计题,**无脑用计数器数组来做就行了。

示例代码(仅供参考):

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;

int main() {
    int n,m;
    int cnt[501]={0};   //开一个计数器数组,初始化为全0
    cin>>n;
    while (n-->0) {
        cin>>m;
        for (int i=1;i<=m;i++) {
            int c;
            cin>>c;
            cnt[c]++;   //对应类别的计数器+1
        }
    }
    int most_id=0;
    int max_count=0;
    for (int i=1;i<=500;i++) {
        if (cnt[i]>max_count) {
            max_count=cnt[i];
            most_id=i;
        }
    }
    cout<<most_id<<" "<<max_count<<endl;
    return 0;
}

第六题:

第六题其实也非常简单。因为他已经明确规定了车牌号码只能是7位,而且他还在提示你快用字符串(因为题中说了允许出现前导零)。

示例代码(仅供参考):

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;

int main() {
    int n;
    cin>>n;
    while (n-->0) {
        string s;
        cin>>s;
        int sum1 = 0, sum2 = 0;
        //前4位平方和
        for (int i=0;i<4;i++) {  //C++中string的下标是从0开始的
            int num=s[i]-'0';    //把字符形式的数字变成真正的整数数字
            sum1+=num*num;
        }
        //后三位立方和
        for (int i=4;i<7;i++) {
            int num=s[i]-'0';
            sum2+=num*num*num;
        }
        if (sum1==sum2) {
            cout<<"Lucky Number"<<endl;
        }
        else {
            cout<<"Normal Number"<<endl;
        }
    }
    return 0;
}
相关推荐
生态学者8 小时前
Global Change Biology | 森林越“步调一致”,反而越怕干旱?树木生长与叶片活动的同步之谜
大数据·人工智能·算法·r语言·微信公众平台
所以遗憾是什么呢?8 小时前
【题解】Educational Codeforces Round 195 (Rated for Div. 2) ABCDE
c++·动态规划·acm·icpc·ccpc·xcpc·codeforecs
lsswear8 小时前
Agent 框架新手入门与实战部署指南
大数据·人工智能·算法
Lhan.zzZ9 小时前
Qt WebEngineView 在 Linux 上无法加载网页:从“看不见 HTML“到“禁用沙箱“
linux·c++·qt
Data analyse45610 小时前
rnweb 回放数据量太大怎么办?分片存储与断点续传的实现思路
前端·网络·算法·数据分析
sysu_chenxy11 小时前
二重循环输出二维图形
c++
Navigator_Z11 小时前
LeetCode //C - 1293. Shortest Path in a Grid with Obstacles Elimination
c语言·算法·leetcode
Nil20812 小时前
leetcode 64最小路径和
算法·leetcode·职场和发展
光影少年12 小时前
AI Agent、自动化与未来工作
人工智能·算法·架构
牧羊人.33312 小时前
计算机视觉基础 第16章|EigenFace,FisherFace,LBPH传统人脸识别算法
人工智能·算法·计算机视觉