zoukankan      html  css  js  c++  java
  • 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;
    }
    
  • 相关阅读:
    关于python的装饰器(初解)
    关于python的创立模块和导入
    2019年春季学期第五周作业
    2019年春季学期第四周作业
    2019年春季学期第三周作业
    pytest
    Python中if __name__ == '__main__':的作用和原理
    oracle中的游标
    oracle中的一些小知识点
    python中str()与repr()函数的区别
  • 原文地址:https://www.cnblogs.com/xxhao/p/14318528.html
Copyright © 2011-2022 走看看