首页 > 解决方案 > 我可以在不使用两个循环的情况下执行此任务吗?

问题描述

我试图解决一个简单的问题,我必须实现的是,如果值为nis 2,则打印

2211
21

或者如果值为nis 3,则打印

333222111
332211
321

我编码的是这个,

n=3
for i in range(n,0,-1):
    for j in range(n,0,-1):
        print(str(j)*i,sep='',end='')
    print()

有没有办法在没有两个循环的情况下执行此任务?

或者,我可以在不使用循环的情况下迭代jfrom nto的值并打印每个变体吗?0

标签: pythonpython-3.xtime-complexity

解决方案


你可以用递归来做到这一点,但时间复杂度不会改变......这样的事情:

def method(n, size):
    if n == 0:
        return;
    for i in range(size,0,-1):
        print(str(i)*n,sep='',end='')
    print()
    method(n-1, size)

method(3, 3)

推荐阅读