[华为机试真题]67.奇偶数入座

原创 2015年07月07日 09:12:13

题目

这里写图片描述

代码

/*---------------------------------------
*   日期:2015-07-07
*   作者:SJF0115
*   题目:奇偶数入座
*   来源:华为机试真题
-----------------------------------------*/
#include <iostream>
#include <string>
#include <vector>
#include <stack>
#include <algorithm>
using namespace std;

vector<int> OddEvenSort(vector<int> num){
    int i,j,k;
    int size = num.size();
    vector<int> result;
    if(size == 0){
        return result;
    }//if
    vector<int> odd;
    vector<int> even;
    // 奇偶分离
    for(i = 0;i < size;++i){
        // 奇数
        if(num[i] % 2){
            odd.push_back(num[i]);
        }//if
        // 偶数
        else{
            even.push_back(num[i]);
        }//else
    }//for
    // 排序
    sort(odd.begin(),odd.end());
    sort(even.begin(),even.end());
    // 整合
    int oddSize = odd.size();
    int evenSize = even.size();
    int number = 0;
    for(i = 0,j = 0,k = 1;i < oddSize || j < evenSize;++k){
        // 奇数
        if(k % 2){
            number = i < oddSize ? odd[i] : 0;
            ++i;
        }//if
        // 偶数
        else{
            number = j < evenSize ? even[j] : 0;
            ++j;
        }//else
        result.push_back(number);
    }//while
    return result;
}

int main(){
    int n = 10;
    freopen("C:\\Users\\Administrator\\Desktop\\acm.txt","r",stdin);
    vector<int> vec;
    int num,i;
    // 输入
    for(i = 0;i < n;++i){
        cin>>num;
        vec.push_back(num);
    }//for
    // 排序
    vector<int> result = OddEvenSort(vec);
    // 输出
    int size = result.size();
    for(i = 0;i < size;++i){
        if(i == size-1){
            cout<<result[i]<<endl;
        }//if
        else{
            cout<<result[i]<<" ";
        }//else
    }//for
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

奇偶数入座

题目描述 编写一个函数,将输入的一串10个数字进行从小到大排序,但是要求偶数放在偶数位置上,奇数放在奇数位置上。 缺失的位置由0补齐。输入中不会有0。 输入 输入10组随机数字 输出 按照...

OJ 系列之奇偶数入座

描述: 将输入的一串10个整数进行从小到大排序,但是要求偶数放在偶数位置上,奇数放在奇数位置上。缺失的位置由0补齐,输入中不会有0。 运行时间限制: 无限制 内存限制: 128 MByte 输入: ...

[华为机试真题]66.单词搜索

题目代码/*--------------------------------------- * 日期:2015-07-06 * 作者:SJF0115 * 题目:WordSearch * ...

[华为机试真题]72.操作系统任务调度问题

题目操作系统任务调度问题。操作系统任务分为系统任务和用户任务两种。其中, 系统任务的优先级 < 50,用户任务的优先级 >= 50且 ...

[华为机试真题][2014]64.实现两个合法时间相加

题目描述: 给定两个合法的时间(格式固定:hh:mm:ss,时间合法,不用考虑其它情况),输入两个时间相加后的结果;注意,相加后的结果也必需是一个合法的时间; 附合法时间定义:小时在[00-23...

2014华为机试真题(1)

1.及格线问题 10个学生考完期末考试评卷完成后,A老师需要划出及格线,要求如下: (1) 及格线是10的倍数; (2) 保证至少有60%的学生及格; (3) 如果所有的学生都高于60分,则及格线为6...

2014华为机试真题(2)

1.数字是否存在相同部分         求一个整型数字中有没有相同的部分,例如12386123这个整型数字中相同的部分是123,相同的部分至少应该是2位数,如果有相同部分返回1,如果没有则返回0。...

[华为机试真题]68.简单四则运算

题目输入一个只包含个位数字的简单四则运算表达式字符串,计算该表达式的值 注: 3.1、表达式只含 +, -, *, / 四则运算符,不含括号 3.2、表达式数值只包含个位整数(0-9),且不会出现0作...

[华为机试真题]69.姓名的夫妻相

题目在中国,形容夫妻恩爱的词汇中,大家用的比较多的就是“夫妻相”。所谓“夫妻相”,就是两个人看上去比较般配,长相、身材等某些方面有一定的相似度。 本题则另辟蹊径,从人的姓名维度,以字母重复个数来寻找最...

[华为机试真题]73.公交站寻址

题目一个N*N二维矩阵代表城市布局,元素值只有’.’,’X’ , ‘B’ , ‘S’,X代表当前位置,B代表路障,S代表公交站,’.’代表可行的路径。 现给定路径长度Y,找到能够到达的公交站的个数,路...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[华为机试真题]67.奇偶数入座
举报原因:
原因补充:

(最多只允许输入30个字)