YTUOJ-占座问题(2道)

题目描述

Tree经过不懈奋斗,终于上了烟台大学,开始体验美好的大学生活,早晨去上个高数课吧,进到教室发现,全是书啊(占座的),不得不在后面坐着上课,Tree不服气啊,第二次课早早的来到教室准备占座,占座也是有规矩的:首先别人占的座位,你不能去占;其次,连着的空座,无论连着多少个空座都可以只用一本书去占,Tree不知道最少用几本书可以占完这一排的空座,只好请你来帮忙计算一下啦。

输入

输入一排座位的状态,'*'代表该座被别人占了,'@'代表该座是空座,可以占座,每排恒定10个座位。

输出

输出Tree最少需要多少本书占这一排所有的空座

样例输入

*@*@@@***@

样例输出

3

提示

来源

代码如下:

#include <iostream>
#include <cstring>
using namespace std;
int main()
{
    int sum=0;
    char str[10];
    cin>>str;
    int n=strlen(str);
    for(int i=0; i<n; i++)
    {

        if(str[i] == '*')
            continue;
        else
        {
            if (str[i-1]=='@')
            {
                i++;
                continue;
            }
            i++;
            sum++;


        }
    }
    cout<<sum<<endl;
    return 0;
}


运行结果:

YTUOJ-占座问题(2道)_第1张图片

 

(2)

题目描述

新学期开始了,小明提早到自习教室帮同学占座,一本书可以占两个相邻座位,小明只想占一整排座位,求总共需要几本书来占满这一排空余座位?

输入

题目有多组测试数据

先输入一个数据n,表示这一排总共有多少个座位,再输入一行座位状态,"*"为不能占座,"@"为可以占座。

输出

输出需要几本书占座,如果没有座位可以来占座,则输出"Oh no!"

样例输入

1
*
6
@**@@@

样例输出

Oh no!
3

提示

 

代码如下:

#include <iostream>
#include <string>
using namespace std;
int main()
{
    int n,sum=0;
    string str;
    while (cin>>n>>str)
    {
        for(int i=0; i<n; i++)
        {
 
            if(str[i] == '*')
                continue;
            else
            {
                i++;
                sum++;
            }
        }
        if(sum == 0)
            cout<<"Oh no!"<<endl;
        else
 
            cout<<sum<<endl;
        sum=0;
    }
    return 0;
}


运行结果:

 

学习心得:

题目还是比较简单的,不过两个都WA了一次

你可能感兴趣的:(C++,博客)