UVALive5389 UVA414 POJ1493 ZOJ1339 Machined Surfaces

Regionals 1995 >> North America - East Central NA

问题链接UVALive5389 UVA414 POJ1493 ZOJ1339 Machined Surfaces

题意简述:输入若干测试实例,每个实例首先输入n,之后输入n行字符串,若n=0则程序结束。每行的字符串包含字符"X"和空格,"X"在两边,空格在中间。可以用左边或右边的X去填充中间的空格,每行填充的"X"都一样多,问某行空格被填充完时,总共还剩下多少空格。

问题分析:这个问题实际上就是统计空格数和找空格最少行有多少空格问题。剩余空格数=总空格数-空格最少行的空格数×n。

程序说明:直接按字符读入处理,没有使用输入缓冲区

AC的C语言程序如下:

/* UVALive5389 UVA414 POJ1493 ZOJ1339 Machined Surfaces */

#include <stdio.h>

#define MAX 100000

int main(void)
{
    int n, sum, min, count, i;
    char c;

    while(scanf("%d
", &n) != EOF && n != 0) {
        sum = 0;
        min = MAX;
        for(i=1; i<=n; i++) {
            count = 0;

            c = getchar();
            while(c != '
') {
                if(c == ' ') {
                    sum++;
                    count++;
                }
                c = getchar();
            }

            if(count < min)
                min = count;
        }

        printf("%d
", sum - min * n);
    }

    return 0;
}


原文地址:https://www.cnblogs.com/tigerisland/p/7564369.html