Je vais essayer d'être concis cette fois-ci! Je travaille toujours sur Project Euler, cette fois-ci à # 2. Mon vrai problème ici est que je suis terrible avec Ruby. Quand je lance le code suivantErreur de syntaxe dans Ruby, caractère de tuyau inattendu dans un Do
x = 1
y = 2
sum = 2
while x >= 4_000_000 do |x|
sum += y if y % 2 == 0
z = x + y
x = x^y # xor magic
y = x^y # xor magic
x = x^y # xor magic
y = z
end
p sum
Mon interprète lance la sortie suivante:
/Users/Andy/Documents/Programming/Ruby/ProjectEuler/P2.rb:4: syntax error, unexpected '|'
while x >= 4_000_000 do |x|
^
Je lis why's (Poignant) Guide to Ruby, et je suis assez sûr que j'ai la syntaxe de conduite correcte pour le Do. Quelqu'un pourrait-il souligner ce que je fais mal ici? J'ai essayé de déconner dans beaucoup de façons différentes et je suis à venir short handed
Note: Je * délibérément * n'a pas mis de commentaires ou d'explications dans le code. N'hésitez pas à me poser des questions, mais essayez d'abord de comprendre par vous-même. Je ne serai pas près d'un ordinateur pour les 12 prochaines heures, mais je reviendrai vers vous. –
Aussi, puisque cela ne répond pas vraiment à votre question, je l'ai fait Wiki communautaire afin que je ne gagne pas de réputation. Et comme un avantage secondaire, cela signifie qu'il est beaucoup plus facile pour les autres ou pour vous de l'éditer et d'incorporer des réponses, des questions et des idées. –
Ok, donc je l'ai réduit à
x = 1 y = 2 sum = 2 while x < 4_000_000 sum += x if x.even? x, y = y, x+y end p sum
Et il donne la réponse incorrecte. Est-ce un problème de syntaxe ou un problème ID10T? – Andy