奇数单增序列
Description
给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。
Input
共2行:
第1行为 N;
第2行为 N 个正整数,其间用空格间隔。
Output
增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。
Sample Input
10
1 3 2 6 5 4 9 8 7 10
Sample Output
1,3,5,7,9
python解法
# 读取第一行的N值
N = int(input().strip())
# 读取第二行的N个正整数,并转换为整数列表
numbers = list(map(int, input().strip().split()))
# 使用列表推导式提取所有奇数,并排序
# odd_numbers = sorted([num for num in numbers if num % 2 != 0])
odd_nums_list = [] # 初始化一个空列表来存储奇数
for num in numbers: # 遍历 numbers 列表中的每一个元素
if num % 2 != 0: # 判断 num 是否为奇数
odd_nums_list.append(num) # 如果是奇数,则将其添加到 odd_nums_list 列表中
# 排序:对包含所有奇数的列表进行排序
sorted_odd_nums = sorted(odd_nums_list)
# 赋值:将排序后的奇数列表赋值给 odd_numbers
odd_numbers = sorted_odd_nums
# 使用join方法将排序后的奇数列表转换为以逗号分隔的字符串,并输出
print(','.join(map(str, odd_numbers)))
c++解法
#include<bits/stdc++.h> // 这是一个常用的头文件
using namespace std; // 使用标准命名空间
int a[500]; // 定义一个整型数组a,可以存储500个整数
int main()
{
int n;
bool flag=1; // 定义一个布尔变量flag,初始值为1,用于控制输出格式(是否添加逗号)
cin>>n; // 从标准输入读取一个整数n,表示数组a的元素个数
for(int i=1;i<=n;i++)cin>>a[i]; // 从标准输入读取n个整数,并存储在数组a中(注意:通常数组索引从0开始,但这里从1开始)
// 以下是对数组a进行冒泡排序的代码
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n-i;j++) // 内层循环中,每次循环都比较相邻的两个元素,并交换位置(如果前一个比后一个大)
{
if(a[j]>a[j+1])
{
swap(a[j],a[j+1]); // 使用swap函数交换两个元素的位置
}
}
}
// 以下代码用于输出数组a中的所有奇数元素,并用逗号分隔
for(int i=1;i<=n;i++)
{
if(a[i]%2==1) // 判断当前元素是否为奇数
{
if(flag==1) // 如果是第一个奇数,则直接输出,并设置flag为0,表示后面再输出奇数时要加逗号
{
cout<<a[i];
flag=0;
}
else cout<<","<<a[i]; // 如果不是第一个奇数,则在前面加上逗号后再输出
}
}
return 0; // 主函数返回0,表示程序正常结束
}
如果您有更优的解法,欢迎在评论区一起交流噢~
阅读剩余
作者:小鱼
链接:https://www.52stu.com/?p=205
文章版权归作者所有,未经允许请勿转载。
链接:https://www.52stu.com/?p=205
文章版权归作者所有,未经允许请勿转载。
THE END