突然发现草稿箱里有几个3月份刷PTA的做题记录,忘记当时为什么没有发,现在整理一下重新发出来吧。
我最初代码如下:
# 判断输入是否正确
while True:
n = input()
if n.isdigit():
# 将n转为int型
n = int(n)
# 判断数字是不是超过1000的正整数
if 0 < n < 1000:
break
# 判断n的奇偶性,根据奇偶性进行计算
count = 0
while n != 1:
if n % 2 == 0: # 奇数
n /= 2
else: # 偶数
n = (3*n+1) / 2
count += 1
# 输出
print(count)
按上面这样提交会报“非零返回”,不知是什么原因,暂时修改成下面这样,PTA提示答案正确。
n = int(input())
# 判断n的奇偶性,根据奇偶性进行计算
count = 0
while n != 1:
if n%2 == 0: # 奇数
n/=2
else: # 偶数
n=(3*n+1)/2
count += 1
# 输出
print(count)
# 接收一个输入,判断其是否为小于10^100的正整数
while True:
n = input()
if n.isdigit():
num = int(n)
if 0 <= num <= 10**100:
break
# 获取输入的数各位之和
digit_sum = 0
for i in n:
digit_sum += int(i)
# 用汉语拼音输出结果
cn_num = ["ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"]
digit_sum = str(digit_sum) # 将digi_sum转换为str类型
count = 0
for i in digit_sum:
print(cn_num[int(i)], end="")
count+=1
if count!= digit_sum.__len__():
print(" ", end="")
# 接收键盘输入一个不超过3位的正整数
while True:
n = input()
if n.isdigit():
if 0 < int(n) <1000:
n = int(n)
break
# 换格式输出
n_1 = int(n%10)
n_2 = int(n/10%10)
n_3 = int(n/100)
print("B"*n_3 + "S"*n_2, end="")
for i in range(1, n_1+1):
print(i, end="")
# 接收用户输入一句长度不超过80的字符串
while True:
en_str = input()
if en_str.__len__() <=80:
break
# 倒序输出
en_list = en_str.split(" ")
en_list.reverse()
count = 0
for i in en_list:
count+=1
print(i, end="")
# 末尾不输出空格
if count != en_list.__len__():
print(" ", end="")
def check(sl:str) -> str:
# 判断是否只有PAT这三个字母
for i in sl:
if i not in "PAT":
return "NO"
# 判断PAT是否存在且PT是否唯一
if sl.count("A") == 0:
return "NO"
if sl.count("P") != 1:
return "NO"
if sl.count("T") != 1:
return "NO"
# 判断P是否在T之前
if sl.index("T") < sl.index("P"):
return "NO"
# 判断A的数量和位置是否符合条件
a = sl[:sl.index("P")]
b = sl[sl.index("P"):sl.index("T")]
c = sl[sl.index("T"):]
if b.count("A") == 1:
if a.count("A") != c.count("A"):
return "NO"
elif b.count("A") == 0:
return "NO"
else:
if a.count("A") == c.count("A") == 0:
return "YES"
elif c.count("A") == 0:
return "NO"
elif c.count("A")/a.count("A") != b.count("A"):
return "NO"
return "YES"
n = int(input())
# 输入测试用例
sl = []
for i in range(n):
ss = input()
sl.append(ss)
# 接收结果
result = []
for i in sl:
re = check(i)
result.append(re)
# 循环输出结果
for i in result:
print(i)
PTA(Basic Level) Practice 刷题(部分) Python实现
原文:https://www.cnblogs.com/CharrammaBlog/p/12496382.html