數字n是從鍵盤輸入的(這里是n=7),需要輸出這樣的數字
如何將這兩個功能完美地合二為一?
static void printD(int N, int k)
{
for (int i = 1; i <= k / 2; i )
Console.Write(" ");
for (int i = 1; i <= N - k 1; i )
Console.Write("*");
Console.WriteLine();
if (k < N)
printD(N, k 2);
}
static void printU(int N, int k)
{
for (int c = 1; c <= N / 2 1 - k; c )
Console.Write(" ");
for (int c = 1; c <= k * 2 - 1; c )
Console.Write("*");
Console.WriteLine();
if (k < N / 2 1)
printD(N, k 1);
}

uj5u.com熱心網友回復:
我建議提取一種列印單行的方法:
static bool printLine(int N, int k) {
if (k <= 0 || k > N)
return false;
Console.Write(new string(' ', (N - k) / 2));
Console.Write(new string('*', k));
return true;
}
然后我們可以輕松實作向下和向上三角形的遞回列印:
static void printD(int N, int k) {
if (printLine(N, k)) {
Console.WriteLine();
printD(N, k - 2);
}
}
static void printU(int N, int k) {
if (printLine(N, k)) {
Console.WriteLine();
printU(N, k 2);
}
}
最后,要繪制菱形圖形,我們必須先列印三角形,然后再列印三角形。所以為了組合三角形,我們所要做的就是呼叫printUand printD:
static void print(int N) {
printU(N, N % 2 == 0 ? 2 : 1);
printD(N, N);
}
演示:
print(6);
Console.WriteLine();
print(5);
結果:
**
****
******
******
****
**
*
***
*****
*****
***
*
請擺弄代碼。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/344903.html
下一篇:做簡單的python遞回時的問題
