Sebuah tahun yang umum adalah tahun yang tidak tahun kabisat dan di mana hari pertama dan terakhir tahun ini adalah pada hari yang sama. Sebuah tahun khusus umum adalah salah satu yang dimulai pada hari Senin dan berakhir pada hari Senin juga.
Tantangan Anda adalah membuat program / fungsi yang ketika diberi tahun sebagai input menemukan tahun umum khusus terdekat, menghasilkan sendiri jika itu adalah tahun yang umum. Jika tahun sedekat mungkin dengan tahun sebelumnya seperti tahun berikutnya menghasilkan yang lebih besar.
Memasukkan
Integer yang mewakili tahun untuk diuji dalam kisaran 1600 <= x <= 2100
.
Keluaran
Integer yang mewakili tahun umum khusus terdekat.
Uji kasus
2017 -> 2018
2018 -> 2018
1992 -> 1990
1600 -> 1601
2100 -> 2103
1728 -> 1731 (lies between 1725 and 1731)
Catatan
Semua 54 tahun dalam kisaran yang diberikan sudah ditampilkan di artikel Wikipedia yang ditautkan. Saya juga akan memberikannya di sini untuk referensi:
1601, 1607, 1618, 1629, 1635, 1646, 1657, 1663, 1674, 1685, 1691
1703, 1714, 1725, 1731, 1742, 1753, 1759, 1770, 1781, 1787, 1798
1810, 1821, 1827, 1838, 1849, 1855, 1866, 1877, 1883, 1894, 1900
1906, 1917, 1923, 1934, 1945, 1951, 1962, 1973, 1979, 1990
2001, 2007, 2018, 2029, 2035, 2046, 2057, 2063, 2074, 2085, 2091
2103 (Needed for 2097 to 2100)
a year that is not a leap year and where the first and last day of the year are on the same day
Bagian kedua dari definisi itu berlebihan. Semua tahun non-kabisat dimulai dan berakhir pada hari yang sama, tepatnya 52 minggu dan satu hari (365 hari).
6, 11, 11
. IE 6 tahun setelah yang pertama adalah yang lain, 11 tahun setelah yang lain, 11 tahun setelah yang lain, 6 tahun setelah yang lain, dll.