【每日编程-393期】哈工大上机题(二)

教育   2024-12-22 17:31   广西  

哈工大上机题(二)


每日编程中遇到任何疑问、意见、建议请公众号留言或加入每日编程群聊739635399



1-20号牌,输入牌的数目,以及每张牌的编号。只有三张连续的牌可以兑换一张新牌,新牌不能参与兑换。编程实现计算可兑换的牌数。

输入格式:

输入牌的数量

输入牌的编号

输出格式:

能兑换的牌的数量

输入样例:

10
1 1 2 2 3 5 5 6 7 9

输出样例:

2

解决方法:

(1)算法的基本思想:

遍历整个牌组,找到可以兑换的牌组,则进行兑换,直到不足兑换为止。然后继续向后遍历。

(2)代码实现:

#include <iostream>
using namespace std;
int main(void)
{
    int card[20];      //用于存放各牌号的数目
    int canChange = 0//计数可兑换的牌数
    int n;             //牌数

    //初始化牌数
    for (int i = 0; i < 20; i++)
    {
        card[i] = 0;
    }
    //提示输入牌数
    cout << "请输入牌数:" << endl;
    cin >> n;
    //提示输入每张牌的编号
    cout << "输入牌的编号:" << endl;
    for (int i = 0; i < n; i++)
    {
        int t;
        cin >> t;
        card[t - 1]++;
    }
    //遍历牌组,进行兑换
    int s; //定义工作指针
    while (s <= (n - 3))
    {
        if ((card[s] >= 1) && (card[s + 1] >= 1) && (card[s + 2] >= 1))
        {
            card[s]--;
            card[s + 1]--;
            card[s + 2]--;
            canChange++;
        }
        else
        {
            s++;
        }
    }

    cout << "能兑换" << canChange << "张牌" << endl;
    return 0;
}

明日预告:哈工大上机题(三)
 计算1!+2!+3!+……+n!的最后6位。已知n>=25时最后6位全0;

输入格式:

输入n

输出格式:

输出计算结果

输入样例:

32

输出样例:

940313


灰灰考研
最全的【计算机考研】【软件考研】考研信息! 最丰富的共享资料! 最大程度上帮助学渣狗登上研究生大门!
 最新文章