【ACM】杭电OJ 5055(Bob and math problem)

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

注意几点:

1、全部都是偶数,输出-1

2、n-1个是0,第n个不论是奇数,还是偶数,输出-1

3、n=1的情况

4、将所有数字从大到小排列,挑出最小的奇数放在最后一位

 

&运算符

n&1 等效于 n%2==1

#include 
#include 
#include 
#include 
using namespace std;

const int maxn = 110;

int a[maxn];


int main ()
{
	int i,sum1,sum2,j,flag,n;
	while(scanf("%d",&n)!=EOF)
	{
		sum1=0;sum2=0;
		for(i=0;i1 && sum1==n-1 && sum2==1)
		{
			printf("-1\n");
			continue;
		}
		sort(a,a+n);
		for(i=0;i=0;i--)
		{
			if(i!=flag)
				printf("%d",a[i]);
		}
		printf("%d\n",a[flag]);
	}
	return 0;
}

 

你可能感兴趣的:(ACM)