Can't find error in code for printing a spiral of numbers from 1 to n*n, error "Time limit exceeded"

21 views Asked by At

Time limit exceeded

n=int(input())
a=[[0 for j in range(n)]for i in range(n)]
n1=0
i=0
c=0
while c<len(a)**2:
    if i<=(n+1)//2:
        for j in range(n1, n-n1-1):
            c+=1
            a[i][j]=c
        n1+=1
        i=n-n1
        for j in range(n1, n-n1-1):
            c+=1
            a[j][i]=c
    if i>(n+1)//2:
        for j in range(n-1-n1, n1-1, -1):
            c+=1
            a[i][j]=c
        n1+=1
        for j in range(n-1, n1-1, -1):
            a[j][i]=c
            c+=1
        i=n1-1
for i in range(n):
    for j in range(n):
        print (a[i][j])

I can't find what's wrong with my code. It is always resulting in 'time limit exceeded'. This code creates a spiral from numbers from 1 to n*n by filling a nested list and then prints it.

0

There are 0 answers