zoukankan      html  css  js  c++  java
  • Uva1585 Score

    基本上采用了模拟的方法,就是每到一个'O',就开始统计以此为起点的这串连续的'O'能的几分。

    另外有一些注意的地方写在代码的注释里

    #include <iostream>
    #include <cstring>
    #include <cstdio>
    
    using namespace std;
    
    const int MAXN = 80 + 10;
    char s[MAXN];
    
    // c从此位置开始有几个连续的'O'
    int getSubScore( char **p ) { // 写 char *p 程序会出错
        int counter = 0;
        int i = 0;
        while( **p=='O' && **p!='' ) {
            i ++;
            counter += i;
            (*p) ++;
        }
        return counter;
    }
    
    int main() {
        int counter;
        int T;
        cin >> T;
        while( T-- ) {
            cin >> s;
            char *p = s;
            counter = 0;
            while( *p!='' ) {
                if( *p == 'O' ) {
                    counter += getSubScore( &p );
                    // 此处不能再跟 p ++, 因为在上一函数里已经移动了 指针p
                    // 可能此时 p 已指向'', 再加 p ++可能出错
                } else {
                    p ++;
                }
            }
            cout << counter << endl;
        }
        return 0;
    }
    
  • 相关阅读:
    Java自学
    java自学
    Java自学
    每日总结
    每日总结
    每日总结
    每日总结
    每日总结
    每日总结
    每日总结
  • 原文地址:https://www.cnblogs.com/Emerald/p/4437337.html
Copyright © 2011-2022 走看看