首页 > 其他分享 >浙江理工大学入队200题——18I

浙江理工大学入队200题——18I

时间:2022-10-30 14:57:46浏览次数:45  
标签:200 LC 输出 -- 代码 18I --- 入队 数字

问题 I: LC-显示器2297

题目描述

你的一个朋友刚买了一台新电脑。 到目前为止,他曾经使用过的最强大的计算机是袖珍计算器。 现在,看着他的新电脑,他有点失望,因为他非常喜欢他的计算器的LC显示器。 所以你决定编写一个程序,在他的计算机上以类似LC显示的方式显示数字。

输入

输入包含多行,每行显示一个。 每行包含两个整数s,n(1 <= s <= 10,0 <= n <= 99 999 999),其中n是要显示的数字,s是应显示的大小。 输入文件将由包含两个零的行终止。 不应处理此行。

输出

以LC显示样式输出输入文件中给出的数字,使用s“ - ”表示水平线段和s“|” 表示垂直线段。 每个数字正好占据s + 2列和2s + 3行。 (确保用空格填充数字占据的所有空白区域,也包括最后一个数字。)两个数之间必须有一列空白。 在每个数字后输出一个空行。 (您将在示例输出中找到每个数字的样本。)

样例输入 Copy

2 12345
3 67890
0 0

样例输出 Copy

     --   --        -- 
|      |    | |  | | 
|      |    | |  | | 
     --   --   --   -- 
|   |       |    |    |
|   |       |    |    |
     --   --        -- 

---   ---   ---   ---   --- 
|         | |   | |   | |   |
|         | |   | |   | |   |
|         | |   | |   | |   |
 ---         ---   --- 
|   |     | |   |     | |   |
|   |     | |   |     | |   |
|   |     | |   |     | |   |
 ---         ---   ---   ---

题解

头疼麻烦题
仔细观察,找规律
有头顶,底座,左上,左下,右上,右下的分别有
23567890;2345680;456890;2680;2347890;134567890;
由于我们不能直接输出1的形状后再输出2,所以打表写不出来,我们要考虑同一行的数,也就是同时考虑到n的每一个元素,因此我们把n例如12345拆到a[0]-a[4],根据每一个数子的特性来判断。
例如s=2时1 4算头的时候就是s+2

点击查看代码
for(i=1;i<=s+2;i++)
{
	printf(" ");
}
否则23567890算头就要--
点击查看代码
else
		{
			printf(" ");
				for(i=2;i<=s+1;i++)
				{
					printf("-");
				}
				printf(" ");
			}
			printf(" ");
例如上面的,其他自己看代码把,搬运自 > https://blog.csdn.net/AbigailWilliams2/article/details/121617198

代码(AC)

点击查看代码
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
	int a[10];
	int n,i,s,j,t,k;
	while(scanf("%d%d",&s,&n)!=EOF)
	{
		if(s==0 && n==0) break;
		t=0;
		if(n==0)
		{
			t=1;
			a[t]=0;
		}
		else
		{
			while(n!=0)
			{
				t++;
				a[t]=n%10;
				n=n/10;
			}
		}
		for(j=t;j>=1;j--)
		{
			if(a[j]==1 || a[j]==4)
			{
				for(i=1;i<=s+2;i++)
				{
					printf(" ");
				}
			}
			else
			{
				printf(" ");
				for(i=2;i<=s+1;i++)
				{
					printf("-");
				}
				printf(" ");
			}
			printf(" ");
		}
		printf("\n");
		k=s;
		while(k--)
		{
			for(j=t;j>=1;j--)
			{
				if(a[j]==5 || a[j]==6)
				{
					printf("|");
					for(i=2;i<=s+2;i++)
					{
						printf(" ");
					}
				}
				else if(a[j]==1 || a[j]==2 || a[j]==3 || a[j]==7)
				{
					for(i=2;i<=s+2;i++)
					{
						printf(" ");
					}
					printf("|");
				}
				else
				{
					printf("|");
					for(i=2;i<=s+1;i++)
					{
						printf(" ");
					}
					printf("|");
				}
				printf(" ");
			}
			printf("\n");
		}
		for(j=t;j>=1;j--)
		{
			if(a[j]==1 || a[j]==7 || a[j]==0)
			{
				for(i=1;i<=s+2;i++)
				{
					printf(" ");
				}
			}
			else
			{
				printf(" ");
				for(i=2;i<=s+1;i++)
				{
					printf("-");
				}
				printf(" ");
			}
			printf(" ");
		}
		printf("\n");
		k=s;
		while(k--)
		{
			for(j=t;j>=1;j--)
			{
				if(a[j]==2)
				{
					printf("|");
					for(i=2;i<=s+2;i++)
					{
						printf(" ");
					}
				}
			
				else if(a[j]==1 || a[j]==4 || a[j]==3 || a[j]==7 || a[j]==5 || a[j]==9)
				{
					for(i=2;i<=s+2;i++)
					{
						printf(" ");
					}
					printf("|");
				}
				else
				{
					printf("|");
					for(i=2;i<=s+1;i++)
					{
						printf(" ");
					}
					printf("|");
				}
				printf(" ");
			}
			printf("\n");
		}
		for(j=t;j>=1;j--)
		{
			if(a[j]==1 || a[j]==4 || a[j]==7)
			{
				for(i=1;i<=s+2;i++)
				{
					printf(" ");
				}
			}
			else
			{
				printf(" ");
				for(i=2;i<=s+1;i++)
				{
					printf("-");
				}
				printf(" ");
			}
			printf(" ");
		}
		printf("\n");
		printf("\n");
	}
	return 0;
}

标签:200,LC,输出,--,代码,18I,---,入队,数字
From: https://www.cnblogs.com/codeshany/p/zstu_200_18I.html

相关文章

  • 浙江理工大学入队200题——18H
    问题H:超级跳跳跳1281题目描述如今,一种叫做“超级跳跳跳!”的国际象棋游戏在ZSTU很受欢迎。也许你是一个好孩子,对这个游戏知之甚少,所以我现在介绍给你。游戏可由两个或......
  • 浙江理工大学入队200题——18F
    问题F:两倍1006题目描述作为算术能力计划的一部分,您的学生将被随机生成2到15个唯一正整数的列表,并要求确定每个列表中有多少项是同一列表中其他项的两倍。您将需要一......
  • 浙江理工大学入队200题——18G
    问题G:醉酒的狱卒1014题目描述某个监狱的大厅里有n个牢房,每个牢房彼此相邻。每个牢房都有一个囚犯,每个牢房都被锁上了。一天晚上,狱卒感到无聊并决定玩游戏。第一轮比赛......
  • P2272 [ZJOI2007]最大半连通子图
    哎,这道题打了半个小时,调了两个小时,最后发现竟然是把\(Tarjan\)里\(while\)给打成\(if\),呜呜,枉费我两个小时时间,所以下次一定要记住不能打成\(if\)(估计也就我一个......
  • 浙江理工大学入队200题——18D
    问题D:摘果子题目描述果园里一共有n个果子,每个果子的重量ai都是已知的。果园的主人喜欢收集“最萌重量差”的果子,现聘请你来帮他完成这一任务。所谓“最萌重量......
  • windows 2003 oracle 10.2.0.4 升级迁移到linux 11.2.0.4
    文档课题:windows2003oracle10.2.0.4升级迁移到linux11.2.0.4源端:windows200332位+oracle10.2.0.432位+双实例目标端:centos7.964位+oracle11.2.0.464位应......
  • 浙江理工大学入队200题——17E
    问题E:零基础学C/C++184——吉祥数题目描述为了迎接圣诞,信息学兴趣小组的同学在辅导老师的带领下,举办了一个盛大的晚会,晚会的第一项内容是做游戏:猜数。老师给每位同学......
  • 浙江理工大学入队200题——17H
    问题H:零基础学C/C++187——美丽的黄山题目描述众所周知,黄山市一片山(而不是一座山)。假设这些山排成了一排,每座山有各自的高度。现在游客们从最左边看山,有些山因为高度......
  • 浙江理工大学入队200题——16I
    问题I:零基础学C/C++172——猴子选大王题目描述有n只猴子围成一圈,从1~n编号,大家决定从中选出一个大王。经过协商,决定选大王的规则为:从编号为1的猴子开始报数,报到k的猴......
  • 浙江理工大学入队200题——17C
    问题C:零基础学C/C++182——墨汁题目描述小T擅长国画,特别崇拜以画马著称的国画大师徐悲鸿先生,所以小T也很喜欢画马,众所周知画马是需要很多墨汁的,为了节省支出,小T决定参......