• 迎春舞会之数字舞蹈


    迎春舞会之数字舞蹈


    给出数字及其要求摆出的大小,编程摆出数字
    

    【输入格式】

    第一行为k。k表示要摆出数字的大小。
    第二行为全部由数字组成的字符串,即要摆出的几个数字。
    

    【输出格式】

    注意:
    每个数字之前有1个空格,所有数字全部对齐。
    k<=30,s的长度不超过255
    建议大家直接输出,不要保存。
    如果对于大小和k有疑问,请自行理解。
    

    【输入样例】
    2
    1234567890
    【输出样例】
    -- -- -- -- -- -- -- --
    | | | | | | | | | | | | | |
    | | | | | | | | | | | | | |
    -- -- -- -- -- -- --
    | | | | | | | | | | | | |
    | | | | | | | | | | | | |
    -- -- -- -- -- - --

    ps:复制到记事本,这上面的太恶心
    见到此题目,第一反应是恶心,实在是太没有人性了!这些数字还要对齐输出,太恐怖了!
    但后来研究了一些大牛的代码.....实际上也没有那么恶心嘛~言归正传,我们开始讨论题目

    首先,我们把0~9按照平面的方式打到记事本上(k=1),空格就打空格,换行先不理,例如:0是-|| ||-,所有的就是这样:
    1:-|| ||-
    2: | |
    3:- |-| -
    4:- |- |-
    5: ||- |
    6:-| - |-
    7:-| -||-
    8:- | |
    9:-||-||-
    0:-||- |-
    看到这里善于观察的你也许看出来了:当第0,3,6个的字符都是横线,而在1,4则都是竖线,2,5也可以看出来了吧。也就是说,当第%3==0的字符就是横线,其他的就是竖线和空格,然后就是打出k个竖线、横线、空格就行了。所以实际上,你们只要能搞定k=1的情况也就整道题都会了。
    如果还没看懂就看代码吧

    
    #include<cstdio>
    #include<string>
    #include<cstring>
    #include<iostream>
    using namespace std;
    char s[300];
    int main()
    {
    	int k,l;
    	string a[10]={"-|| ||-","  |  | ","- |-| -","- |- |-"," ||- | ","-| - |-","-| -||-",
        "- |  | ","-||-||-","-||- |-"};
    	scanf("%d%s",&k,s);l=strlen(s);
    	for(int p=0;p<=6;p++)
    	{
    		if(p==2||p==5)continue;
    		if(p%3==0)
    		{
    			for(int i=0;i<l;i++)
    			{
    				printf(" ");
    				for(int j=1;j<=k;j++)cout<<a[s[i]-'0'][p];//k个横线
    				printf(" ");
    				printf(" ");//这里的空格就是两个数字间隔着的空格
    			}
    			printf("
    ");
    		}
    		else
    		{
    			for(int t=1;t<=k;t++)
    			{
    				for(int i=0;i<l;i++)
    				{
    					cout<<a[s[i]-'0'][p];
    					for(int j=1;j<=k;j++)printf(" ");//k个空格
    					cout<<a[s[i]-'0'][p+1];
    					printf(" ");//这里的空格就是两个数字间隔着的空格
    				}
    				printf("
    ");
    			}
    		}
    	}
    	return 0;
    }
    
  • 相关阅读:
    Educational Codeforces Round 21
    Educational Codeforces Round 22
    Educational Codeforces Round 43
    Educational Codeforces Round 20
    Educational Codeforces Round 19
    Educational Codeforces Round 18
    Hello World!
    训练记录
    2020 Multi-University Training Contest 6
    2020 Multi-University Training Contest 5
  • 原文地址:https://www.cnblogs.com/candy067/p/11402018.html
Copyright © 2020-2023  润新知