hnust 心电图

问题 A: 心电图

时间限制: 1 Sec  内存限制: 128 MB
提交: 621  解决: 250
[提交][状态][讨论版]

题目描述

众所周知,ACM/ICPC实验室聚集了一堆学霸Orz

有学霸的地方就有学渣。而每次考试以后,就是学渣最痛苦的时候。尤其是成绩揭晓的时候,那心情就像十五个吊桶打水————七上八下的。

作为一个学渣,他是不能很好地预计这门考试的成绩的。有时候呢,本来以为考的还行的,结果考下来分数小于60;有时候呢,以为挂定了,结果居然一不小心高分飘过也是完全有可能的~~

学霸看着学渣的心情起起伏伏觉得挺有趣的,于是统计了一下学渣所有N门实际与预期的不合的成绩,绘制成了一幅“心电图”,横坐标表示学渣的科目数,纵坐标表示心情值,正为高兴,负为沮丧,为0时表示心情正常。因为学霸只统计了实际与预期不合的情况,所以这N门科目只存在两种情况:高兴->沮丧,或者沮丧->高兴。

如下图所示:

其中,用1表示沮丧->高兴,用0表示高兴->沮丧。学霸给出一个长度为N的仅包含01的字符串,问学渣的心情多少次经过正常值?两门科目间心情变动也算的哟~~

 

 

 

 

 

 

输入

第一行包含一个数字T(T <= 50), 表示测试样例组数。

接下来T行,每一行包括01组成的字符串。字符串长度不超过100。不会出现空串。

 

输出

每组输入对应输出一行“Case #x: y”,x表示数据组数,y表示结果。

 

样例输入

2
00110
10101

样例输出

Case #1: 7
Case #2: 5

两个相等的连在一起就是3次,两个不同的就是2次。简单数学。

#include <cstdio>
#include <cstring>
int main()
{
    int t,ans;
    char s[110];
    scanf("%d",&t);
    for(int j=1;j<=t;j++)
    {
        scanf("%s",s);
        int l=strlen(s);
        ans=0;
        for(int i=0;i<l-1;i++)
        {
            if(s[i]==s[i+1])
                ans++;
        }
        printf("Case #%d: %d\n",j,ans+l);
    }
    return 0;
}
View Code

 

 
posted @ 2018-12-04 08:33  wandso  阅读(280)  评论(1编辑  收藏  举报