CSU 1330: 字符识别?(字符串模拟啊 湖南省第九届大学生计算机程序设计竞赛)

来源:互联网 发布:淘宝怎么找一件代发 编辑:程序博客网 时间:2024/05/18 19:39

题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1330


Description

你的任务是写一个程序进行字符识别。别担心,你只需要识别1, 2, 3,如下:

 

.*.  ***  ***

.*.  ..*  ..*

.*.  ***  ***

.*.  *..  ..*

.*.  ***  ***

Input

输入仅包含一组数据,由6行组成。第一行为字符的个数n(1<=n<=10)。以下5行每行包含4n个字符。每个字符恰好占5行3列,然后是一个空列(用"."填充)。

Output

输出应包含一行,即识别出的各个字符。

Sample Input

3.*..***.***..*....*...*..*..***.***..*..*.....*..*..***.***.

Sample Output

123

HINT

Source

湖南省第九届大学生计算机程序设计竞赛


PS:

因为只需要判断123!所以观察一下他们的不同!

代码如下:

#include <cstdio>#include <cstring>int main(){int n;char s[7][77];while(~scanf("%d",&n)){int i, j;for(i = 0; i < 5; i++){scanf("%s",s[i]);}int r = n;int c = 4*n;int a[100];memset(a,0,sizeof(a));int l = 0;for(j = 0; j < c;){if(s[0][j]=='.'&&s[0][j+2]=='.'&&s[4][j]=='.'&&s[4][j+2]=='.'){a[l++] = 1;}if(s[0][j]=='*'&&s[0][j+1]=='*'&&s[0][j+2]=='*'){if(s[3][j]=='*'){a[l++] = 2;}}if(s[0][j]=='*'&&s[0][j+1]=='*'&&s[0][j+2]=='*'){if(s[3][j+2]=='*'){a[l++] = 3;}}j+=4;}for(i = 0; i < l; i++){printf("%d",a[i]);}}return 0;}/*6.*..***.***..*..***.***..*....*...*..*....*...*..*..***.***..*..***.***..*..*.....*..*..*.....*..*..***.***..*..***.***.*/



1 0
原创粉丝点击