首页 > 代码库 > hdu 5055 Bob and math problem
hdu 5055 Bob and math problem
题目链接:http://acm.hdu.edu.cn/showproblem.php?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>
hdu 5055 Bob and math problem
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。