8947. Шаблон 2

 

По заданному натуральному числу n вывести изображение размером n * n, образованное символами звездочка и пробел как показано в примере.

Вход. Одно натуральное число n (n ≤ 100).

 

Выход. Выведите изображение n * n.

 

Пример входа 1

Пример выхода 1

5

*****

    *

*****

*   

*****

 

 

Пример входа 2

Пример выхода 2

8

********

       *

********

*      

********

       *

********

*

 

 

РЕШЕНИЕ

циклы

 

Анализ алгоритма

Пронумеруем строки изображения с 0. Тогда:

·        Если строка i четная, то выводим n звездочек.

·        Если i % 4 = 1, то выводим n – 1 пробел и звездочку.

·        Если i % 4 = 3, то выводим звездочку и n – 1 пробел.

 

Реализация алгоритма

Читаем входное значение n.

 

scanf("%d", &n);

 

Выводим изображение n * n. Строки нумеруем с 0.

 

for (i = 0; i < n; i++)

{

 

Если строка i четная, то выводим n звездочек.

 

  if (i % 2 == 0)

    for (k = 0; k < n; k++) printf("*");

  else

  {

 

Если i % 4 = 1, то выводим n – 1 пробел и звездочку.

 

    if (i % 4 == 1)

    {

      for (k = 0; k < n - 1; k++) printf(" ");

      printf("*");

    }

    else

    {

 

Если i % 4 = 3, то выводим звездочку и n – 1 пробел.

 

      printf("*");

      for (k = 0; k < n - 1; k++) printf(" ");

    }

  }

  printf("\n");

}