順時針和逆時針螺旋列印二維陣列(行列式)

2021-09-21 09:20:56 字數 1303 閱讀 9624

一.要求:

行列式,行和寬不一定相等,要求順時針螺旋列印每乙個元素,所謂順時針螺旋即:

第一圈:從第一行第一列元素開始,先從左到右列印第一行所有元素,接著列印最後一剩餘列元素,再從右到左列印最後一行剩餘元素,接著從下到上列印第一列剩餘元素

第二圈:從第二行第二列開始,按上面的順時針順序列印一圈元素

...,一圈圈反覆,直到把所有元素無重複的列印完。

逆時針螺旋與上面的順序剛好相反。

二.分析:

順時針螺旋列印可以將問題分割為:先按順時針列印第一圈,再按順時針列印第二圈,其中每圈又分四個步驟:從左到右,從上到下,從右到左,從下到上。

逆時針螺旋列印可以將問題同樣分割為:先按逆時針列印第一圈,再按擰時針列印第二圈,其中每圈又分四個步驟:從上到下,從左到右,從下到上,從右到左。

三.**:

public class luoxunarr,,,,,,,};

//int a=larr.inttwoarr(11,9);

larr.listinttwoarr(a);//按正常順序列印陣列

larr.luotwoarr(a);//按順時針螺旋列印陣列

larr.reluotwoarr(a);//按逆時針螺旋列印陣列

}//用於生成隨機整數

public int  randomint(int min,int max)

//用於生成二維陣列,並且用隨機整數給每個元素賦值

public int inttwoarr(int line,int col)

flag1=i;    

hang++;//列印的行數加1  

}            

//4.從下到上列印列

if(liestart;i--)

lie++;    //列印的列數加1    

}system.out.println("一共列印了 "+sum+" 個元素");}}

//用於逆時針螺旋列印二維陣列

public void reluotwoarr(int a)

flag1=i;    

lie++;//列印的行數加1                

}            

//4.從右到左列印行

if(hangstart;i--)

hang++;    //列印的列數加1    

}system.out.println("一共列印了 "+sum+" 個元素");

}}    

}

順時針和逆時針螺旋列印二維陣列(行列式)

一.要求 行列式,行和寬不一定相等,要求順時針螺旋列印每乙個元素,所謂順時針螺旋即 第一圈 從第一行第一列元素開始,先從左到右列印第一行所有元素,接著列印最後一剩餘列元素,再從右到左列印最後一行剩餘元素,接著從下到上列印第一列剩餘元素 第二圈 從第二行第二列開始,按上面的順時針順序列印一圈元素 一圈...

順時針螺旋列印二維陣列

想起來一道做過兩次的競賽題,明明之後重寫了標程第二次還是想不起來怎麼寫了,愣是連續兩次打表過 捂臉 題目 1,2,3 n n 的數字按照順時針螺旋的形式列印成矩陣,如下 輸入數字2,則程式輸出 1 24 3 輸入數字3,則程式輸出 1 2 3 8 9 4 7 6 5 輸入數字4,則程式輸出 1 2 ...

順時針列印二維陣列

如果看不懂,可參照劍指offer128頁 include include using namespace std 方法一 傳vector 需要傳引用 方法二 傳二維指標 按圈給陣列賦值 void printmatrixincircle int vector numbers,int rows,int ...