求解c++难题
现要生成一个直角边边长为n的三角形螺旋数阵,规则如下:从三角形的左下角(第n行第1列)出发,初始向上移动,无法前进则转向。走完两条直角边后,向左下经过斜边,遇到已经走过的...
现要生成一个直角边边长为n的三角形螺旋数阵,规则如下:从三角形的左下角(第n行第1列)出发,初始向上移动,无法前进则转向。走完两条直角边后,向左下经过斜边,遇到已经走过的格子则再次转向。在经过的格子中依次填入1, 2, 3, ...,,但是当当前位置为第i行第j列且满足i-j=1时,则当前位置填入的数字变为本身应填入数字的平方,红色数字即为满足i-j=1的变异位置,如下图所示:输入一行,一个不大于15的正整数n;输出n行n列的三角形螺旋数阵,每一数字占5位,如果数字不足5位,则在前面补充空格。样例1输入5输出 5 6 7 8 9 16 14 15 10 3 169 11 2 12 1
展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询