现在的位置: 首页 > 综合 > 正文

POJ1102解题报告

2013年09月03日 ⁄ 综合 ⁄ 共 2244字 ⁄ 字号 评论关闭

 题目:http://acm.pku.edu.cn/JudgeOnline/problem?id=1102

思路:水题。。。水过,注意点:

每个数字之间有一个空格;
每个测试用例之间有一个换行;
#include <stdio.h>
#include <string.h>

int main()
{
	while(1)
	{
		int s,row,col,i,j;
		char n[10];
		scanf("%d%s",&s,n);
		int len = strlen(n);
		if(s==0)
			break;
		col = 2*s;
		row = 2*s+3;
		
		int k=0;
		for(j=0;j<row;j++)
		{
			for(i=0;i<len;i++)
			{
				switch(n[i])
				{
				case '1':
					if(j==0 || j==s+1 || j==2*(s+1))
						for(k=0;k<s+2;k++)
							printf(" ");
					else
					{
						for(k=0;k<s+1;k++)
							printf(" ");
						printf("|" );
					}
					break;
				case '2':
					if(j==0 || j==s+1 || j==2*(s+1))
					{
						printf(" ");
						for(k=0;k<s;k++)
							printf("-");
						printf(" ");
					}
					else if(j>0 && j<s+1)
					{
						for(k=0;k<s+1;k++)
							printf(" ");
						printf("|");
					}	
					else if(j>s+1 && j<2*(s+1))
					{
						printf("|");
						for(k=0;k<s+1;k++)
							printf(" ");
					}
					break;
				case '3':
					if(j==0 || j==s+1 || j==2*(s+1))
					{
						printf(" ");
						for(k=0;k<s;k++)
							printf("-");
						printf(" ");
					}
					else
					{
						for(k=0;k<s+1;k++)
							printf(" ");
						printf("|");
					}
					break;
				case '4':
					if(j==0 || j==2*(s+1))
					{
						for(k=0;k<s+2;k++)
							printf(" ");
					}
					else if(j==s+1)
					{
						printf(" ");
						for(k=0;k<s;k++)
							printf("-");
						printf(" ");
					}
					else if(j>0 && j<s+1)
					{
						printf("|");
						for(k=0;k<s;k++)
							printf(" ");
						printf("|");
					}
					else
					{
						for(k=0;k<s+1;k++)
							printf(" ");
						printf("|");
					}
					break;
				case '5':
					if(j==0 || j==s+1 || j==2*(s+1))
					{
						printf(" ");
						for(k=0;k<s;k++)
							printf("-");
						printf(" ");
					}
					else if(j>0 && j<s+1)
					{
						printf("|");
						for(k=0;k<s+1;k++)
							printf(" ");
					}
					else
					{
						for(k=0;k<s+1;k++)
							printf(" ");
						printf("|");
					}
					break;
				case '6':
					if(j==0 || j==s+1 || j==2*(s+1))
					{
						printf(" ");
						for(k=0;k<s;k++)
							printf("-");
						printf(" ");
					}
					else if(j>0 && j<s+1)
					{
						printf("|");
						for(k=0;k<s+1;k++)
							printf(" ");
					}
					else if(j>s+1 && j<2*(s+1))
					{
						printf("|");
						for(k=0;k<s;k++)
							printf(" ");
						printf("|");
					}
					break;
				case '7':
					if(j==0)
					{
						printf(" ");
						for(k=0;k<s;k++)
							printf("-");
						printf(" ");
					}
					else if(j == s+1 || j==2*(s+1))
					{
						for(k=0;k<s+2;k++)
							printf(" ");
					}
					else
					{
						for(k=0;k<s+1;k++)
							printf(" ");
						printf("|");
					}
					break;
				case '8':
					if(j==0 || j==s+1 || j==2*(s+1))
					{
						printf(" ");
						for(k=0;k<s;k++)
							printf("-");
						printf(" ");
					}
					else
					{
						printf("|");
						for(k=0;k<s;k++)
							printf(" ");
						printf("|");
					}
					break;
				case '9':
					if(j==0 || j==s+1 || j==2*(s+1))
					{
						printf(" ");
						for(k=0;k<s;k++)
							printf("-");
						printf(" ");
					}
					else if(j>0 && j<s+1)
					{
						printf("|");
						for(k=0;k<s;k++)
							printf(" ");
						printf("|");						
					}
					else 
					{
						for(k=0;k<s+1;k++)
							printf(" ");
						printf("|");
					}
					break;
				case '0':
					if(j==0 || j==2*(s+1))
					{
						printf(" ");
						for(k=0;k<s;k++)
							printf("-");
						printf(" ");						
					}
					else if(j==s+1)
					{
						for(k=0;k<s+2;k++)
							printf(" ");
					}
					else
					{
						printf("|");
						for(k=0;k<s;k++)
							printf(" ");
						printf("|");					
					}
					break;
				}
				printf(" ");
			}	
			printf("/n");
		}
		printf("/n");
	}

	return 0;
}



抱歉!评论已关闭.