Вывод символов по диагоналям

Задача

Вывести какой-либо символ по диагоналям воображаемого квадрата.

Пояснение к задаче и алгоритм решения

В каждой строке выводить по пробелы за исключением тех случаев, когда

  • номер строки совпадает с номером столбца,
  • номер строки равен разности количества столбцов и номера столбца. Если нумерация столбцов начиналась с 1, а не нуля, то надо прибавить 1.

Например, если строка пятая, тогда непробельный символ будет выведен в 5-м столбце от начала строки и 5-м от конца (если столбцов 20, то в 16-м).

Исходный код на языке программирования Pascal

var i,j: byte;
begin
    for i:=0 to 19 do begin
        for j:=0 to 19 do
            if (i=j) or (i=19-j) then
                write('#')
            else
                write(' ');
        writeln;
    end;
end.

Пример(ы) выполнения программы на языке Pascal

#                  #
 #                #
  #              #  
   #            #  
    #          #    
     #        #    
      #      #      
       #    #      
        #  #        
         ##        
         ##        
        #  #        
       #    #      
      #      #      
     #        #    
    #          #    
   #            #  
  #              #  
 #                #
#                  #

Исходный код на языке программирования C

#include <stdio.h>
 
main() {
    int i,j;
    for (i=0; i<20; i++) {
        for (j=0; j<20; j++)
            if (i==j || i==19-j)
                printf("-");
            else
                printf(" ");
        printf("\n");
    }
}

Исходный код на языке программирования Python

for i in range(20):
    for j in range(20):
        if i==j or i == 19-j:
            print('^',end='')
        else:
            print(' ',end='')
    print()

Исходный код на языке программирования КуМир

алг символы по диагонали
нач
  цел а,б
  нц для а от 0 до 19
    нц для б от 0 до 19
      если а=б или а=19-б то
        вывод "0"
       иначе
        вывод " "
      все
    кц
    вывод нс
  кц
кон

Исходный код на языке программирования Basic

for i=1 to 20
        for j=1 to 20
                if i = j or i = 20-j+1 then
                        print "v";
                else
                        print " ";
                endif
        next j
        print ""
next i

Тема

Вложенные циклы

Уровень сложности

Средний

Дата публикации