http://acm.hdu.edu.cn/showproblem.php?pid=1021
找规律,一次找出f[0]~f[n]的对三取余的数:
1,2,0,2,2,1,0,1,1,2,0,2,2,1,0,1,1,2,0,2,2,1,0,1.........不断循环
我们的目的是找到取余之后的0与n的关系,除了第一个,0和0之间都是有三个数,所以容易得到只要n%4==2,那么f[n]=0.
#include <iostream>
using namespace std;
int main()
{
int n;
while(cin>>n){
if(n%4==2) cout<<"yes"<<endl;
else cout<<"no"<<endl;
}
return 0;
}