打印方阵1

打印方阵1
题目:

编写一个算法,给定一个一维数组,任意输入6个整数,如5 7 4 8 9 1,然后建立一个具有以下内容的方阵,并打印出来

5 7 4 8 9 1

1 5 7 4 8 9

91 5 7 4 8

89 1 5 7 4

48 9 1 5 7

74 8 9 1 5

读者先想想,我的分析在很下面

分析:

初看这个方阵会觉得又简单又复杂,规律很容易发现,每次换行时,屁股跑到头上去。

但如何最简单的打印出来呢?难道必须每次换行时,整个数组从新排列吗?只要看到我下面的图形,你会马上找到最佳答案:

5 7 4 8 9 15 7 4 8 9 1

5 7 4 8915 7 4 8 91

5 7 489 15 7 4 89 1

5 748 9 15 7 48 9 1

5 74 8 9 15 74 8 9 1

574 8 9 1574 8 9 1

红色字就是需要打印的内容,因此最快速的方法就是申请一个2倍大小的数组。

算法:

比较简单,就用C++了

void Print(int * arr)

{

int * newArr = new int[12];

int i = 0;

for(ii = 0;i<6;i++)

{

newArr[i] = arr[i];

}

for(i = 6;i<12;i++)

{

newArr[i] = arr[i-6];

}

i = 6;//其实打印位置在第6个,直到其实位置变为0,则打印完毕

while(i>0)

{

for(int j = i;j<i+6;j++)

{

cout<<newArr[j]<<"\t";

}

cout<<endl;

i--;

}

}
原文链接: https://www.cnblogs.com/xiao-wei-wei/archive/2013/03/15/2960635.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/80724

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 下午7:42
下一篇 2023年2月9日 下午7:42

相关推荐