HDU4706儿童节
题目描述:现在要求输出一个大写的’N’,但是这个N是由从a到z的小写字母构成的,先是一竖,再是一条主对角线,再是一竖。比如大小为3的N是:
a e
bdf
c g
这个是size为三的时候输出的样子
h n
i mo
j l p
k q
这是size为四时输出的样子
依次输出三到十
代码:
#define _CRT_SECURE_NO_DEPRECATE
#include<iostream>
#include<stdlib.h>
#include<stdio.h>
#include<cmath>
#include<algorithm>
#include<string>
#include<string.h>
#include<set>
#include<queue>
#include<stack>
#include<vector>
#include<functional>
#include<map>
using namespace std;
int main()
{
int sign = 0;
for (int i = 3; i <= 10; i++) //size 为i的N
{
for (int j = 0; j < i; j++) //该N的第j行
{
for (int k = 0; k < i; k++)
{
if (k == 0)
printf("%c", (sign + j) % 26 + 'a');
else if (k == i - 1 - j)
printf("%c", (sign + ((i - 1) * 2 - j) % 26) % 26 + 'a');
else if (k == i - 1)
printf("%c", (sign + ((i - 1) * 2 + j)) % 26 + 'a');
else
printf(" ");
}
printf("\n");
}
sign = (sign + 3 * i - 2) % 26; //保证下一次循环是从上一个最末尾的下一个单词开始
}
return 0;
}