hdu 5055 Bob and math problem
2015-08-15 09:19
405 查看
主题链接:http://acm.hdu.edu.cn/showproblem.php?
pid=5055
思路:排序然后直接取出最小的那一个奇数,注意推断n==1时。。。
code1:
code2:
pid=5055
思路:排序然后直接取出最小的那一个奇数,注意推断n==1时。。。
code1:
<span style="font-size:18px;">#include<cstdio> #include<iostream> #include<cmath> #include<algorithm> using namespace std; int main() { int n,i; int a[110],b[110]; while(scanf("%d",&n)==1) { int sum=0; int flag; for(i=0;i<n;i++) { scanf("%d",&a[i]); if(a[i]!=0) { sum++; } } if(n==1) { if(a[0]%2==1) { printf("%d\n",a[0]); } else { printf("-1\n"); } continue; } sort(a,a+n); for(i=0;i<n;i++) { if(a[i]%2==1) { flag=i; break; } } if(i==n||sum<=1) { printf("-1\n"); } else { for(i=n-1;i>=0;i--) { if(i!=flag) { printf("%d",a[i]); } } printf("%d\n",a[flag]); } } return 0; } </span>
code2:
<span style="font-size:18px;">#include<cstdio> #include<iostream> #include<cmath> #include<algorithm> using namespace std; int main() { int n,i; int a[110],b[110]; while(scanf("%d",&n)==1) { int minn=10; int sum=0; int flag=0; for(i=0;i<n;i++) { scanf("%d",&a[i]); if(a[i]%2==1) { flag=1; minn=min(minn,a[i]); } if(a[i]!=0) { sum++; } } if(flag==0) { printf("-1\n"); continue; } if(n==1) { if(a[0]%2==1) { printf("%d\n",a[0]); } else { printf("-1\n"); } continue; } if(sum<=1) { printf("-1\n"); continue; } int len=0; int flag1=0; for(i=0;i<n;i++) { if(a[i]==minn&&flag1==0) { flag1=1; } else { b[len++]=a[i]; } } sort(b,b+len); int flag2=0; for(i=len-1;i>=0;i--) { if(b[i]!=0) { printf("%d",b[i]); flag2=1; } else if(flag2==1) { printf("%d",b[i]); } } printf("%d\n",minn); } return 0; }</span>
相关文章推荐
- 强引用,软引用与弱引用
- android apk文件安装
- 生产汽车(单调队列+斜率优化)
- 二叉树 (Binary Tree)的遍历
- POJ 2253 Frogger
- Java灵活文档导出-Freemarker
- Win10开始菜单遭用户吐槽:动态磁贴功能不像Win8.1那样
- SQL Server 2005大小写敏感设置
- XShell5 连接虚拟机上的Lunix
- 读写Excel数据
- 操作系统---精髓与设计原理 之 计算机系统概述
- 1097
- android.os.NetworkOnMainThreadException 解决办 4000 法
- 匈牙利算法详解
- 【I/O模型】几种IO模型浅析(一)
- 机器学习—— 决策树(ID3算法)的分析与实现
- XML 特殊字符处理
- oo-面向对象论
- zabbix 自定义变量
- java常见异常集锦