• HDU 5055 Bob and math problem(简单贪心)


    http://acm.hdu.edu.cn/showproblem.php?pid=5055

    题目大意:

      给你N位数,每位数是0~9之间。你把这N位数构成一个整数。

    要求:

      1、必须是奇数

      2、整数的前面没有0

      3、找到一个最大的整数

    如果满足1、2、3条件,就输出这个数,不满足就输出-1.

    给个例子

    3

    1 0 0

    这个构成的奇数是001,这个数前面有0,应该输出-1

    解题思路:

      对给的N个数升序排序。

      然后最小的开始找,找到一个奇数,然后把它放在最左边。

      然后判断这个数是否,满足要求。满足要求,就输出。不满足就输出-1

    AC代码:

     1 #include<cstdio>
     2 #include<algorithm>
     3 using namespace std;
     4 
     5 #define MAXN 110
     6 
     7 int main(){
     8     int i, j, n, digit[MAXN];
     9     while(~scanf("%d", &n)){
    10         for(i = 0; i < n; ++i){
    11             scanf("%d", &digit[i]);
    12         }
    13         
    14         sort(digit, digit + n);//升序
    15         
    16         for(i = 0; i < n; ++i){//从左边开始找,找出一个奇数
    17             if(digit[i] & 1){//if(digit[i] % 2 == 1)
    18                 int t = digit[i];
    19                 for(j = i; j > 0; --j){//将所有的数往右移一位
    20                     digit[j] = digit[j - 1];
    21                 }
    22                 digit[j] = t;//把找到的奇数放在最后一位
    23                 break;//找到了 就跳出循环
    24             }
    25         }
    26         
    27         if(digit[n - 1] && i < n){//这个整数没有前导0,并且在这个大数是奇数
    28             for(j = n - 1; j > 0; --j)
    29                 printf("%d", digit[j]);
    30             printf("%d
    ", digit[j]);
    31         }else{
    32             puts("-1");
    33         }
    34         
    35     }
    36     return 0;
    37 }
  • 相关阅读:
    mysql--创建表,插入数据,修改表名,删除表,简单查询/内连接、左/右连接
    页面访问过程及get/post的理解——
    对docker一些认知
    selenium之css selector定位
    selenium之xpath定位
    Linux常用命令:修改文件权限chmod 754/744
    对redis的一些理解
    用户登录 用例设计
    mysql优化
    mysql复制问题
  • 原文地址:https://www.cnblogs.com/xuqiulin/p/4000241.html
Copyright © 2020-2023  润新知