1284 喜羊羊的新年礼物

1284 喜羊羊的新年礼物

题目描述

新年到了,村长需要一个三位数字显示器来装饰羊村,
显示的数字0~9如下图所示

20120319185910_19437.jpg

喜羊羊自告奋勇地接了任务,打算把它作为新年礼物送给羊村,
现在却发现不是那么简单,你能帮助他吗?

输入要求

一个小于1000的非负整数。

输出要求

输出如描述所示图的数字构成的对应于输入的数字,
数字间空一列。

测试数据

508

555 000 888
5   0 0 8 8
555 0 0 888
  5 0 0 8 8
555 000 888

AC代码

这题比较坑,有两点要注意,

  • 比如说输入9那么就要输出009,输入19,要输出019,
  • 还要就要注意每行数字后面不要输出多余的空格

感觉自己写的比较蠢,如果有大佬有更好的方法,也请告诉我

#include <bits/stdc++.h>
using namespace std;
int main() {
	string s[5];
	s[0]="000 1 2223334 4555666777888999";
	s[1]="0 011   2  34 45  6    78 89 9";
	s[2]="0 0 1 222333444555666  7888999";
	s[3]="0 0 1 2    3  4  56 6 7 8 8  9";
	s[4]="000111222333  45556667  888999";
	int n,myend;
	string in;
	cin>>in;
	if(in.size()==1) in="00"+in; //各位数 
	else if(in.size()==2)in="0"+in;//十位数 
	for(int k=0; k<5; k++) {
		for(int i=0; i<in.size()-1; i++) {
			n=in[i]-'0';
			for(int j=3*n; j<3*n+3; j++) cout<<s[k][j];
			cout<<" ";
		}
		//为了使数字后面没有空格 
		n=in[in.size()-1]-'0';
		{
			for(int j=3*n+2; j>=3*n; j--) {
				if(s[k][j]!=' ') {
					myend=j;
					break;
				}
			}
			for(int j=3*n; j<=myend; j++) cout<<s[k][j];
		}
		cout<<endl;
	}
	return 0;
}
posted @ 2021-01-23 18:32  傻傻的小小豪  阅读(357)  评论(0编辑  收藏  举报