http://acm.zzuli.edu.cn/problem.php?id=1725
1725: 彩票
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 382 Solved: 165
Submit Status Web Board
Description
OMeGa 兄弟最近赢了巨奖!但当他们在分彩票奖金的时候却遇到了一些问题。他们两兄弟对一切偶数都痴迷不已,以至于在分奖金的时候,他们两个都希望自己分到的钱是偶数(即便两人分的钱不一样也没关系)。现在我们知道他们的奖金总共是 N 块钱,那么是否存在一种分钱的方案来满足两人的需求?当然,他们各自拿到的钱肯定是要大于 0 的。
Input
输入的第一行是测试数据的组数 T (T ≤ 50)。
每组测试数据仅包含一个整数 N (1 ≤ N ≤ 108)。
Output
对于每组测试数据,如果这个需求可以被满足的话就输出Yes,否则输出No。
Sample Input
2
5
10
Sample Output
No
Yes
今天晚上我真是醉了,困了吧。我把这个问题想得太麻烦了。结果超时了。。最后队友说如果是奇数的话,肯定输出No(奇数是 偶数+奇数组成的),偶数除了2,都可以偶数加偶数。。
#include<iostream>
using namespace std;
int main()
{
int T,sum;
cin>>T;
while(T--)
{
cin>>sum;
if(sum==1 ||sum==2)
cout<<"No"<<endl;
else if(sum%2==0)
cout<<"Yes"<<endl;
else if(sum%2!=0)
cout<<"No"<<endl;
}
}
我开始超时的是:
#include<iostream>
using namespace std;
int main()
{
int T,sum,i,flag;
cin>>T;
while(T--)
{
flag=0;
cin>>sum;
for(i=2;i<sum;i+=2)
{
if((sum-i)%2==0)
{
flag=1;
cout<<"Yes"<<endl;
break;
}
}
if(flag==0)
cout<<"No"<<endl;
}
return 0;
}