Problem Description
bLue 有一个神奇的机器,这个机器会根据获得的一个数字 n,然后根据这个获得数字打印一串包含 n 个字符的字符串。
打印规则:从 ‘a’ 开始,按字母递增的顺序打印,到 ‘z’ 之后调转方向,按递减顺序打印,回到 ‘a’ 后再递增,如此循环往复。即按照 ‘a’, ‘b’, ‘c’, …, ‘x’, ‘y’, ‘z’, ‘y’, ‘x’, …‘b’, ‘a’, ‘b’, … 的顺序打印,直到打印够 n 个字符停止。
这个机器就是这么的神奇,但是 bLue 的打印机坏掉了,你能帮他修一下吗?
Input
输入数据有多组(数据组数不超过 50),到 EOF 结束。
对于每组数据,输入一行,包含 1 个整数 n (1 <= n <= 10^6)。
Output
对于每组数据,输出一行字符串,表示打印结果。
Sample Input
5
60
Sample Output
abcde
abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcbabcdefghij
题解:将a到z与z到a分成两种情况,在a到z的情况里,到了z之后,再从y回去,再从z到a的情况里,到了a之后,再从b回去。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,n,a,f;
while(scanf("%d",&n)!=EOF)
{
f=1;
a='a';
for(i=1; i<=n; i++)
{
printf("%c",a);
if(f==1)
{
if(a=='z')
{
a=a-2;
f=0;
}
a++;
}
else
{
if(a=='a')
{
a=a+2;
f=1;
}
a--;
}
}
printf("\n");
}
return 0;
}