《算法竞赛入门经典(第2版)》习题3-1 得分 (Score, ACMICPC Seoul 2005, UVa1585)

    技术2022-07-10  109

    《算法竞赛入门经典(第2版)》习题3-1 得分 (Score, ACM/ICPC Seoul 2005, UVa1585)

    给出一个由O和X组成的串(长度为1-80),统计得分。每个O的得分为目前连续出现的O的个数,X的得分为0。例如:OOXXOXXOOO的得分为1+2+0+0+1+0+0+1+2+3。

    分析

    设置两个累加值n和sum,分别用于累计当前的字母’O’应得的分数,以及累计总分。 遍历串的每一个字符,若等于’O’,则分别累加n和sum,若不为’O’(即X),则将n置0即可。

    代码:

    #include <stdio.h> #include <string.h> #include <ctype.h> #include <time.h> int main() { int i, j, n=0, sum=0; // n表示当前的'O'应增加的得分,sum累计总分 char s[100]; scanf("%s", s); for(i=0; i<strlen(s); i++) { if(s[i]=='O') sum += (++n); else n=0; } printf("%d\n", sum); return 0; }
    Processed: 0.014, SQL: 9