Разработать рекурсивный метод для вывода на экран указанной картинки - C#
Формулировка задачи:
Разработать рекурсивный метод для вывода на экран следующей картинки:
Пока получается только так:
static void Stroka(int n, char a)
{
for (int i = 1; i <= n; ++i)
{
Console.Write(a);
}
}
static void StarR(int i, int n)
{
if (n > 0)
{
Stroka(i, ' ');
Stroka(n, 'A');
Console.WriteLine();
StarR(i + 1, n - 2);
Stroka(i, ' ');
Stroka(n, 'A');
Console.WriteLine();
}
}
static void Main()
{
Console.Write("n=");
int n = int.Parse(Console.ReadLine());
Console.WriteLine();
StarR(0, n);
Console.ReadKey();
}
}Решение задачи: «Разработать рекурсивный метод для вывода на экран указанной картинки»
textual
Листинг программы
class Program
{
public static void print(int indexLetter, int count)
{
char letter = (char)indexLetter;
int countSpace = 80 - count;
for (int i = 0; i < 80; ++i)
{
if (i < countSpace / 2)
Console.Write(' ');
else
if (i < count + countSpace / 2)
Console.Write(letter);
else
Console.Write(' ');
}
}
static void Main(string[] args)
{
int indexLetter = 65;
for (int i = 80; i >= 30; i -= 2)
{
print(indexLetter, i);
indexLetter++;
}
--indexLetter;
for (int i = 32; i <= 80; i += 2)
{
indexLetter--;
print(indexLetter, i);
}
Console.ReadLine();
}
}