Une année commune est une année qui n'est pas une année bissextile et où le premier et le dernier jour de l'année sont le même jour. Une année commune spéciale est une année qui commence un lundi et se termine donc un lundi également.
Votre défi est de créer un programme / une fonction qui, une fois donnée une année, trouvera l'année commune spéciale la plus proche, se produisant elle-même s'il s'agit d'une année commune. Si l'année est aussi proche de celle qui la précède que celle qui la suit, sortez la plus grande.
Contribution
Un entier représentant l'année de test dans la plage 1600 <= x <= 2100
.
Production
Un entier représentant l'année commune spéciale la plus proche.
Cas de test
2017 -> 2018
2018 -> 2018
1992 -> 1990
1600 -> 1601
2100 -> 2103
1728 -> 1731 (lies between 1725 and 1731)
Remarques
Les 54 années dans la fourchette donnée sont déjà présentées dans l'article Wikipedia lié. Je vais également les fournir ici pour référence:
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)
6, 11, 11
. IE 6 ans après le premier est un autre, 11 ans après c'est un autre, 11 ans après c'est un autre, 6 ans après c'est un autre, etc.a year that is not a leap year and where the first and last day of the year are on the same day
La deuxième partie de cette définition est redondante. Toutes les années non bissextiles commencent et se terminent le même jour, soit exactement 52 semaines et un jour (365 jours).Réponses:
Gelée , 30 octets
Un lien monadique prenant et retournant une année entière.
Essayez-le en ligne! ou consultez une suite de tests .
Comment?
Tout comme les autres réponses, cela construit la liste des années requises pour le domaine d'entrée à partir des incréments et trouve l'année maximale de la différence absolue minimale par rapport à l'entrée.
la source
PHP, 67 octets
Essayez-le en ligne!
ou
Essayez-le en ligne!
Étendu
Date
la source
$i=($i<1)-$i;
Python 2 ,
129124118 118 octetsEssayez-le en ligne! ou Essayer tous les cas de test
D'abord, la séquence est générée (inversée)
a
, puis2401 - input_year
est utilisée comme valeur de départ à soustraire sur la séquence.De cette façon, la liste
o
contiendra les différences entre toutes les années communes et l'entrée, l'année la plus proche sera le nombre le plus proche de zéro (positif ou négatif), puis sera extraite avec(min, key=abs)
et ajoutée à l'entrée.Avec
datetime
, 119 octetsEssayez-le en ligne!
la source
05AB1E , 41 octets
Essayez-le en ligne!
Explication
la source
JavaScript (ES6), 77 octets
la source
Mathematica, 70 octets
Génère une liste de toutes les années communes spéciales jusqu'à l'année 5040 (= 7!) Puis trouve la plus proche de l'entrée, en prenant le maximum en cas d'égalité.
la source
Java 7, 217 octets
Explication:
Essayez-le ici.
la source
int d(int y, int x){}
àd(int y){int x = 1;...}
x
, donc si je le réinitialise à1
chaque fois en haut de la méthode, ilx
est incorrect et l'appel récursif échouera.MATL ,
3231 octetsEssayez-le en ligne! Ou vérifiez tous les cas de test
la source
C #, 183 octets
Pour lancer un peu la balle, voici une implémentation que j'ai faite moi-même. Je suis à peu près sûr qu'il peut encore être analysé, donc si quelqu'un veut se sentir libre de publier une nouvelle réponse.
Essayez-le en ligne!
Version complète / formatée, cela montre également toutes les sorties pour la plage donnée lors de l'exécution.
la source
Rubis, 145 octets
Définit un lambda en prenant l'année de début en entrée -
f[2017] => 2018
Je dois aimer la bibliothèque standard Ruby!
wday==1
est de la même longueurmonday?
et infiniment moins cool :). La vérification spéciale de l'année commune se fait par le fait que dans une année commune commençant le lundi, le 1er juin est un vendredi ("vendredi" étant le nom du jour le plus court!)Malheureusement, ce n'est pas si bon de chercher dans les deux sens.
la source