यह प्रोजेक्ट यूलर #19 के लिए मेरा कोड है। समस्या का उत्तर 171 है लेकिन मेरा कोड 172 का उत्पादन कर रहा है। कृपया नीचे दिए गए कोड में कोई भी समस्या का पता लगा सकता है।

#include <bits/stdc++.h>
using namespace std ;
typedef long long LL ;
int ordYear[12] = {31,28,31,30,31,30,31,31,30,31,30,31} ;
int leapYear[12] = {31,29,31,30,31,30,31,31,30,31,30,31} ;

int main(){
    int leapFlag = 0 ;
    LL ans = 0 ;
    int dayonfirst = 2 ; // since it was tuesday on 1 Jan 1901
    for (int i=1901 ; i<=2000 ; i++){
        if ( (i%4==0 && i%100!=0) || (i%100==0 && i%400==0) )
            leapFlag = 1 ;
        for (int i=0 ; i<12 ; i++){
            int oddDays ;
            if (leapFlag == 1)
                oddDays = leapYear[i]%7 ;
            else
                oddDays = ordYear[i]%7 ;
            dayonfirst += oddDays  ;
            if(dayonfirst == 7)
                ans++ ;
            else if (dayonfirst > 7)
                dayonfirst = dayonfirst%7 ;
        }
    }
    cout << ans << endl ;
    return 0 ;
}
1
ANURAG BISHT 31 मार्च 2020, 06:34

1 उत्तर

सबसे बढ़िया उत्तर

जब यह लीप वर्ष न हो तो आपको leapFlag = 0 असाइन करने के लिए else statement की आवश्यकता होगी:

if ( (i%4==0 && i%100!=0) || (i%100==0 && i%400==0) )
    leapFlag = 1; 
else 
    leapFlag = 0;
1
CodingLab 31 मार्च 2020, 11:07