C#を使用してサイズn * nの行列をスパイラル順に印刷するにはどうすればよいですか?
行列をらせん状に回転させるには、すべての内側の行列と外側の行列がカバーされるまで、次の手順を実行する必要があります-
-
ステップ1 −一番上の行の要素を移動する
-
ステップ2 −最後の列の要素を移動する
-
ステップ3 −一番下の行の要素を移動する
-
ステップ4 −最初の列の要素を移動する
-
ステップ5 −内側のマトリックスがある間、内側のリングに対して上記の手順を繰り返します
例
using System;
namespace ConsoleApplication{
public class Matrix{
public void PrintMatrixInSpiralOrder(int m, int n, int[,] a){
int i, k = 0, l = 0;
while (k < m && l < n){
for (i = l; i < n; ++i){
Console.Write(a[k, i] + " ");
}
k++;
for (i = k; i < m; ++i){
Console.Write(a[i, n - 1] + " ");
}
n--;
if (k < m){
for (i = n - 1; i >= l; --i){
Console.Write(a[m - 1, i] + " ");
}
m--;
}
if (l < n){
for (i = m - 1; i >= k; --i){
Console.Write(a[i, l] + " ");
}
l++;
}
}
}
}
class Program{
static void Main(string[] args){
Matrix m = new Matrix();
int R = 3;
int C = 6;
int[,] aa = { { 1, 2, 3, 4, 5, 6 },
{ 7, 8, 9, 10, 11, 12 },
{ 13, 14, 15, 16, 17, 18 } };
m.PrintMatrixInSpiralOrder(R, C, aa);
}
}
} 出力
1 2 3 4 5 6 12 18 17 16 15 14 13 7 8 9 10 11
-
AndroidでCollections.reverse()を使用してリスト値を逆の順序で印刷するにはどうすればよいですか?
この例は、AndroidでCollections.reverse()を使用してリスト値を逆の順序で印刷する方法を示しています。 ステップ1 − Android Studioで新しいプロジェクトを作成し、[ファイル]⇒[新しいプロジェクト]に移動して、新しいプロジェクトを作成するために必要なすべての詳細を入力します。 ステップ2 −次のコードをres / layout/activity_main.xmlに追加します。 <?xml version = "1.0" encoding = "utf-8"?> <LinearLayout xm
-
CプログラムでO(1)の余分なスペースを使用して、nxnスパイラル行列を出力します。
正の整数nが与えられ、時計回りにO(1)の余分なスペースのみを使用して、nxnのスパイラル行列を作成します スパイラル行列は、円の原点から始まり時計回りに回転するスパイラルのように機能する行列です。したがって、タスクは、2→4→6→8→10→12→14→16→18から始まるO(1)スペースを使用して、行列をスパイラル形式で印刷することです。 以下にスパイラル行列の例を示します- 例 Input: 3 Output: 9 8 7 2 1 6 3 4 1 無制限のスペースでコードを解くのは簡単になりますが、最