hdu 4706:Children's Day(模拟题,模拟输出大写字母 N)
Children's Day
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 648 Accepted Submission(s): 422
Problem Description
Today is Children's Day. Some children ask you to output a big letter 'N'. 'N' is constituted by two vertical linesand one diagonal. Each pixel of this letter is a character orderly. No tail blank is allowed.
For example, this is a big 'N' start with 'a' and it's size is 3.
Your task is to write different 'N' from size 3 to size 10. The pixel character used is from 'a' to 'z' continuously and periodic('a' is reused after 'z').
For example, this is a big 'N' start with 'a' and it's size is 3.
a e
bdf
c g
Your task is to write different 'N' from size 3 to size 10. The pixel character used is from 'a' to 'z' continuously and periodic('a' is reused after 'z').
Input
This problem has no input.
Output
Output different 'N' from size 3 to size 10. There is no blank line among output.
Sample Output
a e
bdf
c g
h n
i mo
jl p
k q
.........
r j
Hint
Not all the resultsare listed in the sample. There are just some lines. The ellipsis expresseswhat you should write.
Source
Recommend
模拟题。
模拟输出大写字母‘N’,‘N’由小写字母组成,输出的尺寸大小由3增加到10,每个尺寸之间没有空格。输出示例见上。
做这样的模拟题就是要观察输出图形之间的数学关系。总结出关系之后,图形输出就很容易了。
代码:
1 #include <iostream>
2
3 using namespace std;
4
5 int main()
6 {
7 int n; //size
8 int c = 1; //该尺寸的第一个字母的序号
9 for(n=3;n<=10;n++){ //循环尺寸
10 int i,j; //该尺寸的第i行,和该行第j个元素
11 int c1=c%26,c2=(c+2*n-2)%26; //分别记录每一行的第一个字母和最后一个字母序号
12 if(c1==0) c1=26;
13 if(c2==0) c2=26;
14 for(i=1;i<=n;i++){ //行
15 int k=n+1-i; //每一行中间元素的位置
16 for(j=1;j<=n;j++){ //该行每一个元素
17 if(j==1)
18 cout<<char(c1+'a'-1);
19 else if(j==n)
20 cout<<char(c2+'a'-1);
21 else if(j==k){ //中间元素
22 int kc = (c+n+k-2)%26;
23 if(kc==0) kc=26;
24 cout<<char(kc+'a'-1);
25 }
26 else
27 cout<<' ';
28 }
29 cout<<endl;
30 c1=(c1+1)%26,c2=(c2+1)%26;
31 if(c1==0) c1=26;
32 if(c2==0) c2=26;
33 }
34 c=(c+3*n-2)%26;
35 if(c==0)
36 c=26;
37 }
38 return 0;
39 }
Freecode : www.cnblogs.com/yym2013