Il y a 100 étapes, qui peuvent être effectuées en 1 pas ou 2 étapes, alors combien de façons marchent-elles?
Entretien téléphonique d'aujourd'hui. Lorsque vous rencontrez un problème d'algorithme, vous serez confus en un instant;
Ensuite, j'étais intelligent et je pensais que si une personne prenait un pas à chaque fois, alors il aurait au plus 100 pas, et au moins 50 étapes à chaque fois; Puis il est évidemment sorti du sujet. . . Heureusement, l'autre partie m'a interrompu à temps. . . Sinon, je devrais probablement garder mon brainstoral sur cette chose. . . Marcher jusqu'à Black. .
Ensuite, je suis rentré chez moi. Tenant mon mac et pensant tranquillement, je l'ai finalement écrit
var stairs = new Step (); function Step () {this.n1 = 1; this.n2 = 2; this.total = 100; this.getFunction = getFunction;} fonction getFunction () {for (i = 2; i <this.total; i ++) {res = this.n1 + this.n2; this.n1 = this.n2; this.n2 = res; } return res;} var totalstairs = stairs.getFunction (); alert (totalstairs)Lorsqu'il n'y a qu'un seul carré. Seulement 1 étape. . . . Juste un type
Lorsqu'il n'y a que 2 boîtes, vous pouvez 1 + 1 || 2. . . 2 types
Lorsqu'il y a 3 grilles, 1 + 1 + 1 || 2 + 1 || 1 + 2. . 3 types
Lorsque 4 carrés sont 1 + 1 + 1 + 1 || 2 + 2 || 2 + 1 + 1 || 1 + 1 + 2 || 1 + 2 + 1. . . 5 types
sn = s (n-1) + s (n-2)
Algorithme de fibonacci ... et puis il peut être utilisé
for (i = 2; i <this.total; i ++) {res = this.n1 + this.n2; this.n1 = this.n2; this.n2 = res;}Peut-être que je ne suis pas particulièrement bon dans les algorithmes ~ Si vous avez des objections, veuillez me corriger.
Ce qui précède est les questions d'interview JS qui vous sont posées par l'éditeur - le contenu entier du niveau de l'algorithme. J'espère que tout le monde soutiendra Wulin.com plus ~