一.要求:
行列式,行和寬不一定相等,要求順時針螺旋列印每乙個元素,所謂順時針螺旋即:
第一圈:從第一行第一列元素開始,先從左到右列印第一行所有元素,接著列印最後一剩餘列元素,再從右到左列印最後一行剩餘元素,接著從下到上列印第一列剩餘元素
第二圈:從第二行第二列開始,按上面的順時針順序列印一圈元素
...,一圈圈反覆,直到把所有元素無重複的列印完。
逆時針螺旋與上面的順序剛好相反。
二.分析:
順時針螺旋列印可以將問題分割為:先按順時針列印第一圈,再按順時針列印第二圈,其中每圈又分四個步驟:從左到右,從上到下,從右到左,從下到上。
逆時針螺旋列印可以將問題同樣分割為:先按逆時針列印第一圈,再按擰時針列印第二圈,其中每圈又分四個步驟:從上到下,從左到右,從下到上,從右到左。
三.**:
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 ...