奇数单增序列

题目描述:

给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。

 

输入:

共2行:
第1行为 N;
第2行为 N 个正整数,其间用空格间隔。

 

输出:

增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。

 

样例输入:

10
1 3 2 6 5 4 9 8 7 10

 

样例输出:

1,3,5,7,9

 

这个略带一点数学的含量,首先要搞懂奇数除以2是不等于0的(话说学到这的大佬们应该都知道吧……唉……又彪了……不要理我);其次,就得排序了。我这里是把所有奇数放到新的数组里再进行操作(这里用queue似乎简单得很),代码(随便抄(白眼)):

#include<iostream>
    #include<algorithm> 
    using namespace std;
    int a[100000],b[100000];
    int main()
    {
    int N,k,j,temp,d=1;
    cin>>N;
    for(int i=1;i<=N;i++)
    {
        cin>>a[i];
        if(a[i]%2!=0)
        {
            b[d]=a[i];
            d++;
        }
    }
        sort(b+1,b+d+1);
    for(int i=1;i<=d;i++)
    {
        if(b[i]!=0)
        {
            if(i==d)printf("%d",b[i]);
            else printf("%d,",b[i]);
        }
    }
    return 0;
    }

 

posted @ 2017-12-20 19:57  Zhoier  阅读(2227)  评论(0编辑  收藏  举报