在日常生活中,我们经常需要对一组数进行分类统计。如果给定十个数,要求输出其中奇数和偶数的个数,该如何实现呢?
一、基本思路
最简单的方法当然是遍历这十个数,判断每个数是奇数还是偶数,然后统计个数。这个方法的时间复杂度为O(n),代码实现也非常简单。以下是Python代码示例:
```
odd_count = 0 # 奇数个数
even_count = 0 # 偶数个数
for i in range(10):
num = int(input("请输入第%d个数:" % (i+1)))
if num % 2 == 0:
even_count += 1
else:
odd_count += 1
print("奇数个数为:%d,偶数个数为:%d" % (odd_count, even_count))
```
二、优化思路
上述代码虽然简单易懂,但是存在一些问题。比如,如果输入的数很多,遍历的时间会比较长,效率不高。如果输入的数很少,代码也会比较浪费资源。因此,我们需要对其进行优化。
1. 循环语句
以上代码使用的是for循环语句,每次循环都会执行一次输入操作,效率比较低。我们可以改用while循环语句,在输入完十个数后再统计个数。以下是Python代码示例:
```
odd_count = 0 # 奇数个数
even_count = 0 # 偶数个数
count = 0 # 输入的数的个数
while count < 10:
num = int(input("请输入第%d个数:" % (count+1)))
if num % 2 == 0:
even_count += 1
else:
odd_count += 1
count += 1
print("奇数个数为:%d,偶数个数为:%d" % (odd_count, even_count))
```
2. 列表
以上代码只能处理十个数,如果要处理更多的数,就需要修改代码。我们可以使用列表来存储输入的数,然后遍历这个列表进行统计。以下是Python代码示例:
```
odd_count = 0 # 奇数个数
even_count = 0 # 偶数个数
nums = [] # 输入的数
while len(nums) < 10:
num = int(input("请输入第%d个数:" % (len(nums)+1)))
nums.append(num)
for num in nums:
if num % 2 == 0:
even_count += 1
else:
odd_count += 1
print("奇数个数为:%d,偶数个数为:%d" % (odd_count, even_count))
```
三、总结
以上是本文对于“输入十个数输出奇数偶数个数”的探讨。我们从基本思路和优化思路两个方面来分析了这个问题,提出了一些解决方法,并给出了Python代码示例。
本文的重点在于分析问题和解决问题的思路,而代码只是一种实现方式。读者可以根据自己的需求和编程语言的特点来选择适合自己的实现方式。