gpt4 book ai didi

java - 使用简单代码在 Java 或 Python 上创建沙漏模式?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:23:48 24 4
gpt4 key购买 nike

所以我想知道,是否有任何简单的代码可以使用 Java 或 Python 制作具有奇数或偶数输入的沙漏模式?因为我的代码并不简单(我使用的是 Python)。

这是输出示例:

Expected Output

然后,这是我的代码:

def evenGlassHour(target):
jsp=1
jtop=target
jbot=2
jbotspace=int(target/2)
eventarget=int(target/2)
temp=""
for i in range(eventarget):
for j in range(i):
temp+=" "
for jsp in range(jtop):
temp+="@"
jtop-=2
temp+="\n"
for i in range(eventarget-1):
for j in range(jbotspace-2):
temp+=" "
for j in range(jbot+2):
temp+="@"
jbot+=2
jbotspace-=1
temp+="\n"

print(temp)

def oddGlassHour(target):
jsp=1
jtop=target
jbot=1
jbotspace=int(target/2)
oddtarget=int(target/2)
temp=""
for i in range(oddtarget):
for j in range(i):
temp+=" "
for jsp in range(jtop):
temp+="@"
jtop-=2
temp+="\n"
for i in range(oddtarget+1):
for j in range(jbotspace):
temp+=" "
for j in range(jbot):
temp+="@"
jbot+=2
jbotspace-=1
temp+="\n"

print(temp)

target=int(input("Input : "))

if(target%2==0):
evenGlassHour(target)
else:
oddGlassHour(target)

这是我的代码的结果:

 Input : 6
@@@@@@
@@@@
@@
@@@@
@@@@@@

Input : 7
@@@@@@@
@@@@@
@@@
@
@@@
@@@@@
@@@@@@@

最佳答案

您可以通过 str.zfill 和递归使用字符串格式化:

def _glass(_input, _original, flag=True):
if _input in {1, 2}:
return ('00' if _input == 2 else '0').center(_original) if flag else ''
if flag:
return ('0'*(_input)).center(_original)+'\n'+_glass(_input-2, _original, flag=flag)
return _glass(_input-2, _original, flag=flag)+'\n'+('0'*(_input)).center(_original)

def print_glasses(_input):
print(_glass(_input, _input)+_glass(_input, _input, False))

for i in range(3, 8):
print_glasses(i)
print('-'*20)

输出:

000
0
000
--------------------
0000
00
0000
--------------------
00000
000
0
000
00000
--------------------
000000
0000
00
0000
000000
--------------------
0000000
00000
000
0
000
00000
0000000
--------------------

关于java - 使用简单代码在 Java 或 Python 上创建沙漏模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54307232/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com