当前位置: 首页 > article >正文

PAT乙级真题 / 知识点(1)

引言:

起初,报PAT是伙伴推荐。但在报名路途中,有朋友说,花时间到这上面不值得,还有学长说没听过,野鸡杯。

我一笑而过,我可能就是偏执,我就是想报。随着刷真题,我的基础得以巩固,我在想,他们为此而错过了什么...

大纲:

1、A+B和C (15) - 简单题(解析)

2、数字分类 (20) - 边界测试,要细心(解析)

3、数素数 (20) - 欧拉筛(解析)

4、福尔摩斯的约会 (20) - 我还是喜欢柳姐的代码,太简便了(解析)

5、德才论 (25) - 第一次运用结构体,太爽了(解析)

6、1016. 部分A+B (15) - 简单题(解析)

7、A除以B (20) - 模拟-除法,非常好的题目(解析)

8、锤子剪刀布 (20) - 第一次用pair<int,int>...(解析)

9、1019. 数字黑洞 (20) - 加深了我对pair的运用(解析)

10、月饼 (25) - 不在介意结构体,甚至喜欢与sort结合(解析)

题目:

1、A+B和C (15)

题目描述

给定区间[-231, 231]内的3个整数A、B和C,请判断A+B是否大于C。

输入描述:

输入第1行给出正整数T(<=10),是测试用例的个数。随后给出T组测试用例,每组占一行,顺序给出A、B和C。整数间以空格分隔。

输出描述:

对每组测试用例,在一行中输出“Case #X: true”如果A+B>C,否则输出“Case #X: false”,其中X是测试用例的编号(从1开始)。

输入例子:

4
1 2 3
2 3 4
2147483647 0 2147483646
0 -2147483648 -2147483647

输出例子:

Case #1: false
Case #2: true
Case #3: true
Case #4: false
#include <iostream>
using namespace std;
int main() {
    int n;
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
        long long int a, b, c;
        scanf("%lld%lld%lld", &a, &b, &c);
        printf("Case #%d: %s\n", i + 1, a + b > c ? "true" : "false");
    }
    return 0;
}

2、数字分类 (20)

题目描述

给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:
 A1 = 能被5整除的数字中所有偶数的和;
 A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4...;
 A3 = 被5除后余2的数字的个数;
 A4 = 被5除后余3的数字的平均数,精确到小数点后1位;
 A5 = 被5除后余4的数字中最大数字。

输入描述:

每个输入包含1个测试用例。
每个测试用例先输入一个不超过1000的正整数N。
然后给出N个不超过1000的待分类的正整数。数字间以空格分隔。

输出描述:

对给定的N个正整数,按题目要求计算A1~A5并在一行中顺序输出。数字间以空格分隔,但行末不得有多余空格。
若其中某一类数字不存在,则在相应位置输出“N”。

输入例子:

13 1 2 3 4 5 6 7 8 9 10 20 16 18

输出例子:

30 11 2 9.7 9
#include <iostream>
using namespace std;
// 这道题目,真抽象,怪不得通过率这么低,压根是因为边界测试缘故,粗心缘故
int main() {
    int A1=0,A2=0,A3=0,A4=0,A5=INT32_MIN;
    int i2=1,i4=0;
    int n;
    cin>>n;
    int num;
    while(n--){
        cin>>num;
        if(num%5==0&&num%2==0){
            A1 += num;
        }else if (num%5==1){
            A2 += num*i2;
            i2*=(-1);
        }else if (num%5==2) {
            A3++;
        }else if (num%5==3){
            A4+=num;
            i4++;
        }else if (num%5==4) {
            A5 = max(num,A5);
        }
    }
    if(A1!=0) cout<<A1<<" ";
    else cout<<"N ";
    if(A2!=0) cout<<A2<<" ";
    else cout<<"N ";
    if(A3!=0) cout<<A3<<" ";
    else cout<<"N ";
    if(i4!=0) printf("%.1f ",(double)A4/i4);
    else cout<<"N ";
    if(A5!=INT32_MIN) cout<<A5<<" ";
    else cout<<"N ";
}
// 64 位输出请用 printf(\"%lld\")

3、数素数 (20)

题目描述

令Pi表示第i(i从1开始计数)个素数。现任给两个正整数M <= N <= 10000,请输出PM到PN的所有素数。

输入描述:

输入在一行中给出M和N,其间以空格分隔。

输出描述:

输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。

输入例子:

5 27

输出例子:

11 13 17 19 23 29 31 37 41 43
47 53 59 61 67 71 73 79 83 89
97 101 103
#include "bits/stdc++.h"
using namespace std;
int sieve[110005];
void get_sieve(vector<bool>& bool_sieve){ // 欧拉筛,大范围筛数
    int num = 0;
    bool_sieve[2] = true; // 表示二是素数
    for(int i=2; i<110005; ++i){
        if(bool_sieve[i]) sieve[num++]=i;
        for (int j = 0; j < num; ++j) {
            if(i*sieve[j]>110005) break;
            bool_sieve[i*sieve[j]] = false;
            if(i% sieve[j]==0) break;
        }
    }

}
int main(){
    int n,m;
    cin>>n>>m;
    vector<bool> bool_sieve(110005, true); // 表示都是质数
    bool_sieve[0] = bool_sieve[1] = false;
    get_sieve(bool_sieve);
    int flag = 0;
    for(int i = n-1; i < m; ++i){
        flag++;
       cout<<sieve[i];
       if(flag%10==0) cout<<endl;
       else cout<<" ";
    }
    return 0;
}

4、福尔摩斯的约会 (20)

题目描述

大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间“星期四 14:04”,因为前面两字符串中第1对相同的大写英文字母(大小写有区分)是第4个字母'D',代表星期四;第2对相同的字符是'E',那是第5个英文字母,代表一天里的第14个钟头(于是一天的0点到23点由数字0到9、以及大写字母A到N表示);后面两字符串第1对相同的英文字母's'出现在第4个位置(从0开始计数)上,代表第4分钟。现给定两对字符串,请帮助福尔摩斯解码得到约会的时间。

(注:两字符串的比较过程必须按照两字符串中对应的下标相同的字符进行比较!)

 

输入描述:

输入在4行中分别给出4个非空、不包含空格、且长度不超过60的字符串。

输出描述:

在一行中输出约会的时间,格式为“DAY HH:MM”,其中“DAY”是某星期的3字符缩写,即MON表示星期一,TUE表示星期二,WED表示星期三,THU表示星期
四,FRI表示星期五,SAT表示星期六,SUN表示星期日。题目输入保证每个测试存在唯一解。

输入例子:

3485djDkxh4hhGE
2984akDfkkkkggEdsb
s&hgsfdk
d&Hyscvnm

输出例子:

THU 14:04
#include <iostream>
#include <cctype>
using namespace std;
// 这个是刘姐的代码,太简介啦!!!
int main() {
    string a, b, c, d;
    cin >> a >> b >> c >> d;
    char t[2];
    int pos, i = 0, j = 0;
    while(i < a.length() && i < b.length()) {
        if (a[i] == b[i] && (a[i] >= 'A' && a[i] <= 'G')) {
            t[0] = a[i];
            break;
        }
        i++;
    }
    i = i + 1;
    while (i < a.length() && i < b.length()) {
        if (a[i] == b[i] && ((a[i] >= 'A' && a[i] <= 'N') || isdigit(a[i]))) {
            t[1] = a[i];
            break;
        }
        i++;
    }
    while (j < c.length() && j < d.length()) {
        if (c[j] == d[j] && isalpha(c[j])) {
            pos = j;
            break;
        }
        j++;
    }
    string week[7] = {"MON ", "TUE ", "WED ", "THU ", "FRI ", "SAT ", "SUN "};
    int m = isdigit(t[1]) ? t[1] - '0' : t[1] - 'A' + 10;
    cout << week[t[0]-'A'];
    printf("%02d:%02d", m, pos);
    return 0;
}

5、德才论 (25)

题目描述

宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之
 小人。凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人。”
 
 现给出一批考生的德才分数,请根据司马光的理论给出录取排名。

输入描述:

输入第1行给出3个正整数,分别为:N(<=105),即考生总数;L(>=60),为录取最低分数线,即德分和才分均不低于L的考生才有资格
被考虑录取;H(<100),为优先录取线——德分和才分均不低于此线的被定义为“才德全尽”,此类考生按德才总分从高到低排序;才分不到
但德分到线的一类考生属于“德胜才”,也按总分排序,但排在第一类考生之后;德才分均低于H,但是德分不低于才分的考生属于“才德兼
亡”但尚有“德胜才”者,按总分排序,但排在第二类考生之后;其他达到最低线L的考生也按总分排序,但排在第三类考生之后。

随后N行,每行给出一位考生的信息,包括:准考证号、德分、才分,其中准考证号为8位整数,德才分为区间[0, 100]内的整数。数字间以空格分隔。

输出描述:

输出第1行首先给出达到最低分数线的考生人数M,随后M行,每行按照输入格式输出一位考生的信息,考生按输入中说明的规则从高到低排序。当某类考生中有多人
总分相同时,按其德分降序排列;若德分也并列,则按准考证号的升序输出。

输入例子:

14 60 80
10000001 64 90
10000002 90 60
10000011 85 80
10000003 85 80
10000004 80 85
10000005 82 77
10000006 83 76
10000007 90 78
10000008 75 79
10000009 59 90
10000010 88 45
10000012 80 100
10000013 90 99
10000014 66 60

输出例子:

12
10000013 90 99
10000012 80 100
10000003 85 80
10000011 85 80
10000004 80 85
10000007 90 78
10000006 83 76
10000005 82 77
10000002 90 60
10000014 66 60
10000008 75 79
10000001 64 90
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
// 这可是,我第一次,在算法中运用结构体,太爽了,当与cmp结合时
struct student {
    int sum;
    int moral;
    int talent;
    int id;
    student(int x, int y, int z): moral(x), talent(y), id(z) {
        sum = x + y;
    }
};
bool cmp(const student& stu1, const student& stu2) { // 匹配模式
    if (stu1.sum != stu2.sum) return stu1.sum >
                                         stu2.sum; // 第一个大于第二个
    if (stu1.moral != stu2.moral) return stu1.moral > stu2.moral; // 德高者居之
    return stu1.id < stu2.id; // 按降序排列
}
int main() {
    int N, L, H; // N(考生总数) L(最低录取分数线) H(优先录取)
    cin >> N >> L >> H;
    vector<student> vec1, vec2, vec3, vec4;

    while (N--) {
        int id, moral, talent;
        cin >> id >> moral >> talent;
        student s(moral, talent, id);
        if (s.moral >= H && s.talent >= H) vec1.push_back(s);
        else if (s.moral >= L && s.talent >= L) { // 都及格
            if (s.moral >= s.talent && s.moral >= H) vec2.push_back(s);
            else if (s.moral >= s.talent) vec3.push_back(s);
            else vec4.push_back(s);
        }
    }
    sort(vec1.begin(), vec1.end(), cmp);
    sort(vec2.begin(), vec2.end(), cmp);
    sort(vec3.begin(), vec3.end(), cmp);
    sort(vec4.begin(), vec4.end(), cmp);
    cout << vec1.size() + vec2.size() + vec3.size() + vec4.size() << endl;
    for (student s : vec1) cout << s.id << " " << s.moral << " " << s.talent <<
                                    endl;
    for (student s : vec2) cout << s.id << " " << s.moral << " " << s.talent <<
                                    endl;
    for (student s : vec3) cout << s.id << " " << s.moral << " " << s.talent <<
                                    endl;
    for (student s : vec4) cout << s.id << " " << s.moral << " " << s.talent <<
                                    endl;

    return 0;
}

6、1016. 部分A+B (15)

题目描述

正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6。
 现给定A、DA、B、DB,请编写程序计算PA + PB。

输入描述:

输入在一行中依次给出A、DA、B、DB,中间以空格分隔,其中0 < A, B < 1010。

输出描述:

在一行中输出PA + PB的值。

输入例子:

3862767 6 13530293 3

输出例子:

399
#include <bits/stdc++.h>
#define ll long long
using namespace std;
// 这道题,倒是挺简单的
int get_num(char d, int num){
    int D = d-'0';
    int all_num = 0;
    while (num--) {
        all_num = all_num*10+D;
    }
    return all_num;
}
int main(){
    string a,b;
    char Da,Db;
    cin>>a>>Da>>b>>Db; // 输入
    int numa=0,numb=0;
    for(int i=0; i<a.size(); ++i) // 判断
        if(a[i]==Da) numa++;

    for(int i=0; i<b.size(); ++i)
        if(b[i]==Db) numb++;

    cout<<get_num(Da, numa)+get_num(Db, numb)<<endl;

}

7、A除以B (20)

题目描述

本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。

输入描述:

输入在1行中依次给出A和B,中间以1空格分隔。

输出描述:

在1行中依次输出Q和R,中间以1空格分隔。

输入例子:

123456789050987654321 7

输出例子:

17636684150141093474 3
// !本题值得做!,主要模拟除法内容
// 加深对模拟的了解
#include <bits/stdc++.h>
using namespace std;
int main(){
    string a;
    int b;
    cin>>a>>b;
    int len,t=0,temp=0; // t(存放除数),temp(存放余数)
    len = a.size();
    t = (a[0]-'0')/b; // 模拟除法
    if(t!=0) cout<<t;
    temp = (a[0]-'0')%b;
    int flag = false;
    for(int i=1; i<a.size(); ++i){
        t = (temp*10+a[i]-'0')/b; // 求除数
        if(t!=0) flag = true;
        if(flag) cout<<t;
        temp = (temp*10 +a[i]-'0')%b; // 求剩下的余数
    }
    cout<<" "<<temp;
    return 0;
}

8、锤子剪刀布 (20)

题目描述

大家应该都会玩“锤子剪刀布”的游戏:
现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。

输入描述:

输入第1行给出正整数N(<=105),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代
表“布”,第1个字母代表甲方,第2个代表乙方,中间有1个空格。

输出描述:

输出第1、2行分别给出甲、乙的胜、平、负次数,数字间以1个空格分隔。第3行给出两个字母,分别代表甲、乙获胜次数最多的手势,中间有1个空格。如果解不唯
一,则输出按字母序最小的解。

输入例子:

10
C J
J B
C B
B B
B C
C C
C B
J B
B C
J J

输出例子:

5 3 2
2 3 5
B B
// 本题,一般般,没啥含金量
// 其实挺有含金量的,知识不知道如何将其表示出来
// 这是我第一次,通过pair<int,int>的方式展现出来
#include "iostream"
#include "vector"
#include "algorithm"
using namespace std;
bool cmp(const pair<char,int>& p1,const pair<char,int>& p2){
    if(p1.second!=p2.second) return p1.second>p2.second;
    return p1.first<p2.first; // 升序
}
int main(){ // 这是个啥玩意,天啊,简直喽
    // C代表“锤子”、J代表“剪刀”、B代表“布”,分别除下
    vector<pair<char,int>> vec1{
            {'C',0},{'J',0},{'B',0}
    };
    vector<pair<char,int>> vec2{
            {'C',0},{'J',0},{'B',0}
    };
    int n;
    cin>>n;
    int a=0,b=0,c=0;
    char k1,k2;
    // 只需要,3个字母就能将胜负表示
    while(n--){
        cin>>k1>>k2;
        if(k1==k2){ // 平局
            b++;
        }else if((k1=='C'&&k2=='J')||(k1=='J'&&k2=='B')||(k1=='B'&&k2=='C')){ // 甲胜
            a++;
            if(k1=='C') vec1[0].second++;
            if(k1=='J') vec1[1].second++;
            if(k1=='B') vec1[2].second++;
            // 把另一种方法补充上去
        }else if((k2=='C'&&k1=='J')||(k2=='J'&&k1=='B')||(k2=='B'&&k1=='C')){ // 乙胜
            c++;
            if(k2=='C') vec2[0].second++;
            if(k2=='J') vec2[1].second++;
            if(k2=='B') vec2[2].second++;
        }
    }

    sort(vec1.begin(),vec1.end(), cmp);
    sort(vec2.begin(),vec2.end(), cmp);
    cout<<a<<" "<<b<<" "<<c<<endl;
    cout<<c<<" "<<b<<" "<<a<<endl;
    cout<<vec1[0].first<<" "<<vec2[0].first<<endl;

    return 0;
}
// 当然以上是最麻烦的一种方法之一
// ..... 接下来看这个
/*
 using namespace std;
int main() {
    int n;
    cin >> n;
    int jiawin = 0, yiwin = 0;
    int jia[3] = {0}, yi[3] = {0};
    for (int i = 0; i < n; i++) {
        char s, t;
        cin >> s >> t;
        if (s == 'B' && t == 'C') {
            jiawin++;
            jia[0]++;
        } else if (s == 'B' && t == 'J') {
            yiwin++;
            yi[2]++;
        } else if (s == 'C' && t == 'B') {
            yiwin++;
            yi[0]++;
        } else if (s == 'C' && t == 'J') {
            jiawin++;
            jia[1]++;
        } else if (s == 'J' && t == 'B') {
            jiawin++;
            jia[2]++;
        } else if (s == 'J' && t == 'C') {
            yiwin++;
            yi[1]++;
        }
    }
    cout << jiawin << " " << n - jiawin - yiwin << " " << yiwin << endl << yiwin << " " << n - jiawin - yiwin << " " << jiawin << endl;
    int maxjia = jia[0] >= jia[1] ? 0 : 1;
    maxjia = jia[maxjia] >= jia[2] ? maxjia : 2;
    int maxyi = yi[0] >= yi[1] ? 0 : 1;
    maxyi = yi[maxyi] >= yi[2] ? maxyi : 2;
    char str[4] = {"BCJ"};
    cout << str[maxjia] << " " << str[maxyi];
    return 0;
}
 */

9、1019. 数字黑洞 (20)

题目描述

给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到
 一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的6174,这个神奇的数字也叫Kaprekar常数。
 
 例如,我们从6767开始,将得到
 
 7766 - 6677 = 1089
 9810 - 0189 = 9621
 9621 - 1269 = 8352
 8532 - 2358 = 6174
 7641 - 1467 = 6174
 ... ...
 
 现给定任意4位正整数,请编写程序演示到达黑洞的过程。

输入描述:

输入给出一个[1000, 10000)区间内的正整数N。

输出描述:

如果N的4位数字全相等,则在一行内输出“N - N = 0000”;否则将计算的每一步在一行内输出,直到6174作为差出现,输出格式见样例,每行中间没有空行。注意每个数字按4位数格
 式输出。

输入例子:

6767

输出例子:

7766 - 6677 = 1089
 9810 - 0189 = 9621
 9621 - 1269 = 8352
 8532 - 2358 = 6174
#include <iostream>
#include <algorithm>
using namespace std;
// 夯实了,我对string-字符串的运用
bool cmp(char a, char b){ // 默认是从小到大,现在是从大到小
    return a>b;
}
int main(){ // 
    string str,str1,str2,str3;
    cin>>str;
    int num1,num2,num; // 
    while (1) {
        sort(str.begin(),str.end(),cmp);
        str1 = str;
        num1 = stoi(str1);
        sort(str.begin(),str.end());
        str2 = str;
        num2 = stoi(str2);  
        num = num1-num2;
        str = to_string(num);
        str.insert(0,4-str.size(),'0');
        if(num==0){
            cout<<str1<<" - "<<str2<<" = "<<"0000"<<endl;
            break;
        } else {
            cout<<str1<<" - "<<str2<<" = "<<str<<endl;
            if(num==6174) break;
        }
    }
    return 0;
}

10、月饼 (25)

题目描述

月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需
求量,请你计算可以获得的最大收益是多少。

注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有3种月饼,其库存量分别为18、15、10万吨,总售价分别为75、
72、45亿元。如果市场的最大需求量只有20万吨,那么我们最大收益策略应该是卖出全部15万吨第2种月饼、以及5万吨第3种月饼,获得
 72 + 45/2 = 94.5(亿元)。

输入描述:

每个输入包含1个测试用例。每个测试用例先给出一个不超过1000的正整数N表示月饼的种类数、以及不超过500(以万吨为单位)的正整数
D表示市场最大需求量。随后一行给出N个正数表示每种月饼的库存量(以万吨为单位);最后一行给出N个正数表示每种月饼的总售价(以亿
元为单位)。数字间以空格分隔。

输出描述:

对每组测试用例,在一行中输出最大收益,以亿元为单位并精确到小数点后2位。

输入例子:

3 20
18 15 10
75 72 45

输出例子:

94.50
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
// 对struct不在排挤,而是使用
// 认为细节扣到他脑子有坑,哭死
struct mooncake{
    int num;
    int money;
    double price;
    mooncake():num(0),money(0),price(0){} // 构造器
};

bool cmp(mooncake m1, mooncake m2){ // 从小到大排序
    return m1.price>m2.price;
}
int main(){
    int n,d; // n种类,d市场
    cin>>n>>d;
    vector<mooncake> vec(n);
    for(int i=0; i<n; ++i)  cin>>vec[i].num;
    for(int i=0; i<n; ++i){ // 计算
        cin>>vec[i].money;
        vec[i].price = (double)vec[i].money/vec[i].num;
    }
    sort(vec.begin(),vec.end(),cmp); // 挺好
    int remain = d;
    double money = 0;
    for(int i=0; i<vec.size();  ++i){
        if(remain>=vec[i].num){
            money += vec[i].money;
            remain -= vec[i].num;
        }else{
            money += remain*vec[i].price;
            remain = 0;
        }
        if(remain<=0) break;
    }
    printf("%.2lf",money);
    return 0;
}


 拓展

串的操作 ::(拓展知识)::

串的操作,无非就是对 字符串增删改查

  • 增 - 插入(insert)
  • 删 - 删除某段字符(erase)
  • 改 - 交换(swap),反转(reverse)
  • 查 - 截取片段(substr),查字符(find-string::npos)
  • 比较 - (>,==,<) ASCII 逐个比较
#include "iostream"
using namespace std;

int main(){
    // 增删改查
    string str = "123";
    cout<<str<<endl;
    // 增 - 插入
    str.insert(0,1,'0');
    str.insert(0,"aaa");
    cout<<str<<endl;
    // 删 - 删除
    str.erase(0,1); // 用的好,甚至可以删除某个特定字符
    cout<<str<<endl;
    // 改 - 交换,反转
    string str2 = "00";
    str2.swap(str); - 反转
    reverse(s.begin(), s.end());
    cout<<str<<endl;
    // 查 - 截取片段,查字符
    string str3 = str2.substr(0,3); // 截取
    cout<<str3<<endl;
    cout<<str3.find('0')<<endl;
    if(str3.find('1')==string::npos) cout<<"你好"<<endl;
    string str4 = "2023/2/2",str5 = "2023/3/3";
    // std::string,那它的比较操作应该是通过重载的比较运算符(比如==, <, >等)来实现的。这些运算符的比较规则是基于字符的ASCII值,逐个字符进行比较,直到遇到不同的字符或者字符串结束。
    if(str5>str4) cout<<"月份更大"<<endl;

    return 0;
}


借鉴网站:

1、牛客

2、PAT




http://www.kler.cn/a/570791.html

相关文章:

  • JavaEE--计算机是如何工作的
  • Android中的AtomicLong:原理、使用与实战指南
  • Android 常见View的防抖
  • Python常见面试题的详解10
  • 深入理解 Promise 和 Async/Await,并结合 Axios 实践
  • PPT 小黑第38套
  • MongoDB分片集群
  • 【SRC实战】小游戏漏洞强制挑战
  • K8S学习之基础七:k8s中node污点和pod容忍度
  • safetensors PyTorchModelHubMixin 加载模型
  • 计算机视觉|从0到1揭秘Diffusion:图像生成领域的新革命
  • 【深入剖析:机器学习、深度学习与人工智能的关系】
  • 【C++】使用 CMake 在 Windows 上自动化发布 C++/Qt 应用程序
  • VSCode 移除EmmyLua插件的红色波浪线提示
  • module_init 详解
  • 深刻理解redis高性能之IO多路复用
  • Golang学习笔记_40——模版方法模式
  • Tauri+React跨平台开发环境搭建全指南
  • IDEA 接入 Deepseek
  • 如何使用Docker一键本地化部署LibrePhotos搭建私有云相册