计蒜客显示屏输出;

mac2024-10-06  56

(复制出错,格式有问题。不要描述部分了,看输入样例就能理解题意)

输入格式

输入两个整数 k,n(1≤k≤10,0≤n≤99999999),分别表达放大的倍数和需要输出的数字。

输出格式 输出数码管显示的数字,数字每一位之间用一列空格隔开。

样例输入1 2 12345 样例输出1 – – – | | | | | | | | | | | | – – – – | | | | | | | | | | – – – 样例输入2 3 67890 样例输出2


| | | | | | | | | | | | | | | | | | | | | | | |


| | | | | | | | | | | | | | | | | | | | | | | |


#include<bits/stdc++.h> using namespace std; char num[10][5][2]= { {{'-',' '},{'|','|'},{' ',' '},{'|','|'},{'-',' '}},//数字0的第一行,第二行,第三行…… {{' ',' '},{' ','|'},{' ',' '},{' ','|'},{' ',' '}},//数字1的第一行,第二行,第三行…… {{'-',' '},{' ','|'},{'-',' '},{'|',' '},{'-',' '}},//2 {{'-',' '},{' ','|'},{'-',' '},{' ','|'},{'-',' '}},//3 {{' ',' '},{'|','|'},{'-',' '},{' ','|'},{' ',' '}},//4 {{'-',' '},{'|',' '},{'-',' '},{' ','|'},{'-',' '}},//5 {{'-',' '},{'|',' '},{'-',' '},{'|','|'},{'-',' '}},//6 {{'-',' '},{' ','|'},{' ',' '},{' ','|'},{' ',' '}},//7 {{'-',' '},{'|','|'},{'-',' '},{'|','|'},{'-',' '}},//8 {{'-',' '},{'|','|'},{'-',' '},{' ','|'},{'-',' '}}//9 }; void out(int k,char t) { for(int i=0;i<k;i++) cout<<t; }//实现重复输入; int main() { int s,times,m,i=0,a[10]={0},r=0; cin>>times>>m; if(m==0) { a[0]=0; i=1; }//小心bug,当m=0; while(m>0){ s=m%10; m=m/10; a[i]=s; i++; } i--; for(int j=0;j<=i/2;j++) swap(a[j],a[i-j]);//交换位置; for(int j=0;j<5;j++) { if(j%2==1) r=times; else r=1;//次数; for(int p=0;p<r;p++) { for(int k=0;k<i+1;k++) { if(j%2==0) { cout<<' '; out(times,num[a[k]][j][0]); cout<<' '; if(k!=i) cout<<' ';//去你的格式错误; continue; } else { cout<<num[a[k]][j][0]; out(times,' '); cout<<num[a[k]][j][1]; if(k!=i) cout<<' '; } } cout<<endl; } } return 0; }

本题看着脑壳痛,确实很恶心,光是那个num数组就打了好久;

最新回复(0)