自测-1 打印沙漏

文章预览:

题目

在这里插入图片描述

算法

以前做过这个,那次是c语言写的,一点一点处理一层一层完成,这次我换了一种语言用了另一种思想使用递归去写,还是我们要先求出应该有多少层这个很容易,中间输出部分我们算出每层有多少个,利用python乘法就可以做到,接下来使用递归一直找到只有一个符号的为止,也只有这层输出一次,其余层都输出俩次完成整个递归过程,代码如下:

代码

def output(s,count):
    s=count*' '+s
    print(s)
def solution(fuhao,count,zong):
    output(fuhao*count,(zong-count)//2)
    if count!=1:
        solution(fuhao,count-2,zong)
        output(fuhao*count,(zong-count)//2)  
count_s,fu=input().split()
count_s=int(count_s)
n=0
while 2*n*n-1<=count_s:
    n+=1;
n=n-1
solution(fu,2*n-1,2*n-1)
print(count_s-2*n*n+1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值