关于小甲鱼课后习题我不能解决的问题
我的想法是先判定是不是奇数然后存进去数组里面
然后再利用下标来提取出数字进行组合
然后再与前面的数字比较
但不知为何次次返回的都是零
麻烦各位大佬帮我看看
好人一胎八个
#给定一个字符串 s,请编程求出该字符串中的最大奇数。
temp = input('请输入一个数:')
a = ''
j = []
i = 0
q = 0
p = 0
for each in temp:
if int(each) / 2 != 0:
j.append(each)
else:
if i == 2:
q = p
q = 0
i = 0
for a in range(count(j)):
q += int(j)*10**(-a)
i += 1
j.clear()
if q == 0:
print(q)
if q >= p:
p = 0
else:
p=q
print(q) 我看到你的代码有一些错误,下面是对你的代码进行修改后的版本:
temp = input('请输入一个数:')
j = []
p = 0
for each in temp:
if int(each) % 2 != 0:
j.append(each)
else:
q = int(''.join(j))
if q != 0 and q > p:
p = q
j.clear()
print(p)
这里是对你的代码进行了如下修改:
1. 将变量a的定义移到循环外部是不必要的,所以去掉了它。
2. 在判断奇数时,应该使用取余运算符%,而不是除法运算符/。所以条件应该改为int(each) % 2 != 0。
3. 使用''.join(j)来将列表中的字符连接成字符串,然后再转换为整数。这样可以简化代码,并且避免了使用for循环。
4. 将最大奇数的判断放在循环结束后,而不是在每次循环时进行判断。
请尝试使用修改后的代码,看看是否能够得到预期的结果。如果还有其他问题,请随时提问。 你的代码中存在一些错误,让我们来逐个解决。
首先,你想要判断一个数字是否为奇数,但是你的判断条件写错了。应该使用取模运算符(%)来判断一个数字是否为奇数,而不是除以2再判断是否不等于0。所以你的条件应该是int(each) % 2 != 0 。
其次,在你的代码中,你试图将奇数存储到列表 j 中,但是你的存储逻辑也有问题。你可以直接将奇数字符串追加到 j 列表中,而不需要进行后续的组合操作。
接着,你使用了 count(j) 来获取列表 j 的元素个数,但是这是错误的写法。你应该使用 len(j) 来获取列表 j 的元素个数。
最后,你的代码中有一些逻辑错误,导致最终输出的结果并不是你想要的。你可以考虑重新审视你的解题思路,简化代码逻辑。
以下是修改后的代码:
temp = input('请输入一个数:')
j = []
for each in temp:
if int(each) % 2 != 0:
j.append(each)
if len(j) == 0:
print(0)
else:
print(int(''.join(j)))
这段代码首先将输入的数字中的奇数字符存储到列表 j 中,然后判断 j 列表是否为空,如果为空则输出0,否则将 j 列表中的字符连接起来并转换为整数输出。 isdkz 发表于 2023-11-16 18:28
你的代码中存在一些错误,让我们来逐个解决。
首先,你想要判断一个数字是否为奇数,但是你的判断条件写 ...
谢谢你我的英雄{:10_254:}
页:
[1]