如何在python代码中比较序列中的奇数?
我需要编写一个代码,计算用户输入的一系列数字中相邻奇数对的数量 例如,用户输入序列3、4、5、11、6、17、9、13、12。有三对相邻的奇数:(5,11),(17,9),(9,13) 以下是预期输入和输出的示例:如何在python代码中比较序列中的奇数?,python,Python,我需要编写一个代码,计算用户输入的一系列数字中相邻奇数对的数量 例如,用户输入序列3、4、5、11、6、17、9、13、12。有三对相邻的奇数:(5,11),(17,9),(9,13) 以下是预期输入和输出的示例: Enter the length of the sequence: 5 Enter number 1: 57 Enter number 2: 89 Enter number 3: 3 Enter number 4: 11 Enter number 5: 8 T
Enter the length of the sequence:
5
Enter number 1:
57
Enter number 2:
89
Enter number 3:
3
Enter number 4:
11
Enter number 5:
8
The number of pairs of adjacent odd numbers is: 3
以下是我代码的开头(但我不确定如何找到奇数):
我不知道您为什么在这里使用
eval
,或者将输入存储为字符串而不是列表。。。判断一个数字是否奇数的标准方法是使用模运算符%
-如果n%2!=0
类似的方法应该可以工作
n = int(input("Enter the length of the sequence: "))
numbers = []
for _ in range(n):
numbers.append(int(input()))
c = 0
for i, j in zip(numbers, numbers[1:]):
if i % 2 and j % 2:
c += 1
print(c)
使用%模运算符查找奇数
x=int(input("Enter the number of numbers: "))
odd_l=[]
for i in range(1,x+1):
y=int(input(f"Enter {i} number: "))
if y%2==1:
odd_l.append(y)
print("The number of odd number pairs is ",len(odd_l)//2)
您提供的数字不是相邻的奇数。此外,您还可以利用模数运算符%,因为它给出了余数。您只需检查余数除以2时是否为1。这似乎不适用于3、5、7这样的序列。这是1,但我假设有两对(3,5)和(5,7)。我认为如果用户输入了很多次,那么它就不会形成一对,所以我使用了floor division
x=int(input("Enter the number of numbers: "))
odd_l=[]
for i in range(1,x+1):
y=int(input(f"Enter {i} number: "))
if y%2==1:
odd_l.append(y)
print("The number of odd number pairs is ",len(odd_l)//2)