用列表推导式筛出奇数,再排序并用逗号连接输出。
OJ: noi_openjudge
题目 ID: ch0110-02
难度:入门
标签:排序python
日期: 2026-07-30 23:01
题意
从给定正整数序列中保留所有奇数,按升序输出,元素之间必须用逗号分隔。
思路
列表推导式在读入时完成筛选:number % 2 == 1 的数就是奇数。对结果调用 sorted,最后将整数转为字符串,用 ",".join(...) 统一控制分隔符,避免处理末尾逗号。
代码
Python代码
python
input()
odd_numbers = [number for number in map(int, input().split()) if number % 2 == 1]
print(",".join(map(str, sorted(odd_numbers))))C++代码
cpp
#include <cstdio>
#include <algorithm>
using namespace std;
int n,t;
int a[1000];
int cnt = 0;
int main(){
scanf("%d",&n);
int i;
for(i=1;i<=n;i++){
scanf("%d",&t);
if( t % 2 == 1){
cnt++;
a[cnt] = t;
}
}
sort(a+1,a+cnt+1);
printf("%d",a[1]);
for(i=2;i<=cnt;i++)
printf(",%d",a[i]);
return 0;
}复杂度
设筛出的奇数个数为
总结
当输出格式有固定分隔符时,join 比逐项输出更简洁,也不会多输出一个逗号。