hdu4706!【模拟】

/*Children's Day
Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 846    Accepted Submission(s): 543


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.

a ebdfc 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
[pre]
a e
bdf
c g
h  n
i mo
jl p
k  q
.........
r        j
[/pre]

Hint
Not all the resultsare listed in the sample. There are just some lines. The ellipsis expresseswhat you should write.
 
 

Source
2013 ACM/ICPC Asia Regional Online —— Warmup 
*/
#include<stdio.h>
#include<string.h>
int main()
{
	int i, j, k;
	char s[11][11], ch[26], num = 0;
	ch[0] = 'a';
	for(i = 1; i < 26; i++)
	ch[i] = ch[i-1] + 1;
	for( i = 3; i < 11;  i++)
	{
		memset(s,' ',sizeof(s));
		k = 0;
		for(j = 0; j <i; j++)
		{
			s[j][k] = ch[num++];
			if(num == 26) 
			num = 0;
		}
		k++;
		for(j = i-2; j >= 0; j--, k++)
		{
			s[j][k] = ch[num++];
			if(num == 26)
			num = 0;
		}
		for(j = 1; j < i; j++)
		{
			s[j][k-1] = ch[num++];
			if(num == 26)
			num = 0;
		}
		for( j = 0; j < i; j++)
		{
			for(k = 0; k <= i-1; k++)
			printf("%c",s[j][k]);
			printf("\n");
		}
	}
	return 0;
}

题意:用26个小写字母排列成‘N'字形,尺寸由3*3 ~10*10,字母顺序由小到大循环使用。

思路:开一个数组模拟即可。

你可能感兴趣的:(hdu4706!【模拟】)