AOJ 0093: Leap Year
出力に気をつけるのと、前計算するだけ。少しだけ短く書く場合は、
if(!(i%400) || i%100 && !(i%4)) leap[i]++;
とする。
int leap[3000]; int main(){ for(int i = 1; i < 3000; i++){ if(i%400 == 0) leap[i] = 1; if(i%100 == 0) leap[i] -= 1; if(i%4 == 0) leap[i] += 1; } int a,b,flag = 1; while(cin>>a>>b,a||b){ if(!flag){ cout<<endl; flag = 0; } for(int i = a; i <= b; i++){ if(leap[i]){ cout<<i<<endl; flag = 1; } } if(!flag) cout<<"NA"<<endl; flag = 0; } return 0; }