AtCode 第396场初级竞赛 A-E题解

A Triple Four(三重四)

【题目链接】

原题链接:A - Triple Four

【考点】

循环,判断

【题目大意】

判断连续三个数是否相同

【解析】

三个变量不断滚动,判断是否相等。

【难度】

GESP二级

【代码参考】

b = c#include 
using namespace std;

int main(){
    int n, a, b, c;
    cin >> n >> a >> b;// 前两个元素a和b
    // 注意从第三个元素开始
    for(int i = 3; i <= n; i++){
        cin >> c;// 读取序列的下一个元素
        if(a == b && b == c){// 判断三个连续元素是否相等
            cout << "Yes";
            return 0;
        }
        // 更新a和b的值,为下一次判断做准备
        a = b, b = c;
    }
    // 如果遍历完都没有相同的情况,输出No
    cout << "No";
    return 0;
}

B Card Pile(卡牌堆)

【题目链接】

原题链接:B - Card Pile

【考点】

一维数组

【题目大意】

初始有一百张 0 的卡牌,操作1可以在卡牌上放任意数字卡牌,操作2查看顶部卡牌数字并拿掉。

【解析】

建立一个数组存放一百张0,模拟题目要求在数组后加上卡牌,查询时使指针k--即可。

【难度】

GESP三级

【代码参考】

#include 
using namespace std;

int main(){
    // k表示前100张卡牌都是0
    int q, op, a[205], k = 100;
    memset(a, 0, sizeof(a));// 初始化数组为0
    cin >> q;
    for(int i = 0; i < q; i++){
        cin >> op;
        if(op == 1){
            cin >> a[k++];// 顶部插入一张卡牌并指针k往后移
        }
        else{
            cout << a[k - 1] << endl;// 输出当前

你可能感兴趣的:(青少年编程比赛题解,算法,c++,Atcode)