初赛第六场A
微软近日推出了一款功能极简的手机,在手机上用一个包含了 7×7 个像素的区域来显示手机信号。满信号的时候显示如下:
+-----+
|- 4G|
|-- |
|--- |
|---- |
|-----|
+-----+
每一格信号(第 i(1≤i≤5)格信号有 i 个-
)代表 20% 的信号强度,不足一格信号的部分不显示。同时会在右上角显示当前的网络传输模式。在信号强度不低于 90% 的时候显示4G
;当信号低于 90%、不低于 60 的时候显示3G
;否则显示E
。
对于给定的当前信号强度 d,输出信号的 7×7 像素的图案。
输入格式
输入一个整数 d(0≤d≤100),表示信号强度。
输出格式
按照题目要求输出,每行末尾不要输出多余的空白字符。
样例输入1
0
样例输出1
+-----+ | E| | | | | | | | | +-----+
样例输入2
65
样例输出2
+-----+ |- 3G| |-- | |--- | | | | | +-----+
思路:模拟
1 #include<bits/stdc++.h> 2 using namespace std; 3 4 int main(){ 5 int n; 6 char a[10][10]; 7 for(int i=1;i<=7;i++) 8 for(int j=1;j<=7;j++) a[i][j]=' '; 9 a[1][1]='+'; 10 a[1][7]='+'; 11 for(int i=2;i<=6;i++){ 12 a[1][i]='-'; 13 a[7][i]='-'; 14 } 15 a[7][1]='+'; 16 a[7][7]='+'; 17 for(int i=2;i<=6;i++){ 18 a[i][1]='|'; 19 a[i][7]='|'; 20 } 21 scanf("%d",&n); 22 int x=n/20; 23 for(int i=2;i<=x+1;i++){ 24 for(int j=2;j<=i;j++) 25 a[i][j]='-'; 26 } 27 if(n<=60){ 28 a[2][6]='E'; 29 } 30 else if(n<90){ 31 a[2][5]='3';a[2][6]='G'; 32 } 33 else { 34 a[2][5]='4';a[2][6]='G'; 35 } 36 for(int i=1;i<=7;i++){ 37 for(int j=1;j<=7;j++) 38 cout<<a[i][j]; 39 cout<<endl; 40 } 41 return 0; 42 }