FizzBuzz, делящихся на 5 (но не на 3)
Выразительный Javascript. 2ое издание
стр 43. Напишите программу, которая выводит через console.log все цифры от 1 до 100, с двумя исключениями. Для чисел, нацело делящихся на 3, она должна выводить ‘Fizz’, а для чисел, делящихся на 5 (но не на 3) – ‘Buzz’. Когда сумеете – исправьте её так, чтобы она выводила «FizzBuzz» для всех чисел, которые делятся и на 3 и на 5. Вот мой код, я не знаю как сделать чтобы выводило правильно Fizz :-? var num = 1; for(; num <= 100; num++){ if(!(num % 3)){ document.write(num, " = Buzz", "<br />"); }else if(!(num % 5)){ document.write(num, " = Fizz", "<br />"); }else{ document.write(num, "<br />"); } } ====== Решение: var num = 1; for ( ; num < 100; num++ ) { if ( num % 5 === 0 && num % 3 === 0 ){ document.write( num, " = FizzBuzz <br />" ) } else { if ( num%5 === 0 ){ document.write( num, " = Buzz <br />" ); } else { if ( num%3 === 0 ){ document.write( num, " = Fizz <br/ >" ); } else { document.write( num, "<br/ >" ); } } } } |
Цитата:
<script> var num = 1; for(; num <= 100; num++){ if((num % 3) == 0){ document.write(num, " = Fizz", "<br />"); }else if((num % 5) == 0){ document.write(num, " = Buzz", "<br />"); }else{ document.write(num, "<br />"); } } </script> PS: а "15 = Fizz" это правильно? |
Цитата:
<script> var num = 1; for(; num <= 100; num++){ if((num % 3) == 0 && (num % 5) == 0 ){ document.write(num, " = FizzBuzz", "<br />"); }else{ document.write(num, "<br />"); } } </script> |
Да вот как раз и прикол что число 15 не должно попадать.
То есть "делящихся на 5 (но не на 3) – ‘Buzz’" Число 15 делится на 3, как и 30, 45, 60, 75, 90. Вот и думаю. Кстати да, я что то провтыкал на счет "==" писал num % 5 вместо num % 5 == 0 |
Два парня, впервые увидевшие fizzbuzz и вместе выясняющие как его решать, у меня на глаза ща навернутся слезы умиления =)
|
Ну ты это) Макаров) помоги нет?))
|
jack3dm, Так эта задача проста как пять копеек, и ее важно написать самому, если я ща решение напишу, какой смысл в ней будет?)
Ну то есть не нужно здесь тонкостей языка вообще, нужно составить простейший алгоритм. А умение составлять алгоритмы самому для программиста ну очень важно. Мне кажется имеет смысл подсказывать человеку по проблемам языка, или по какой-то не очень тривиальной задачке, а такое надо самому делать влет, этому за вас никто не научится |
Да понятно что здесь нужно использовать
&& в }else if( num % 5 == 0){ document.write(num, " = Buzz", "<br />"); } Но как бы я не записывал всё равно не работает. Вот например: <script> var num = 1; for(; num <= 100; num++){ if(num % 3 == 0){ document.write(num, " = Fizz", "<br />"); }else if( num % 5 == 0 && num % 3 == 0){ document.write(num, " = Buzz", "<br />"); } else{ document.write(num, "<br />"); } </script> } Я знаю что проблема в else if( num % 5 == 0 && num % 3 == 0) Но как её правильно записать я не знаю. |
я новичок, мне простительно)
Цитата:
те задания слишком уж учебные(но я не всегда могу их решить, но при этом решаю задания и посложнее) |
Кос лови)
Задачи по javascript из книги "Выразительный javascript" http://www.itmathrepetitor.ru/zadach...jj-javascript/ |
Странно. Я этого не понимаю. Если поменять местами ифы то результат будет совершенно другой
Правильный код. <script> var num = 1; for ( ; num < 100; num++ ) { if ( num % 5 === 0 && num % 3 === 0 ){ document.write( num, " = FizzBuzz <br />" ) }else if ( num%5 === 0 ){ document.write( num, " = Buzz <br />" ); }else if ( num%3 === 0 ){ document.write( num, " = Fizz <br/ >" ); }else{ document.write( num, "<br/ >" ); } } </script> А если поменять местами ифы то FizzBuzz не видно... <script> var num = 1; for( ; num <= 100; num++ ){ if( num%3 === 0 ){ document.write( num, " = Fizz <br/ >" ); }else if ( num%5 === 0 ){ document.write( num, " = Buzz <br />" ); }else if ( num % 5 === 0 && num % 3 === 0 ){ document.write( num, " = FizzBuzz <br />" ); }else{ document.write( num, "<br/ >" ); } } </script> Как же это влияет? Как это работает? Почему месторасположение так важно? |
jack3dm,
потому что это два разных алгоритма очевидно. Пусть ваше число равно скажем 15. Куда оно придет во втором случае и куда должно по условиям? Код в большинстве случаев выполняется последовательно, это раз. Конструкция if(проверка){что-нибудь} else {еще что-нибудь} он в else не зайдет если проверка выполнена, это два Ну и в третьих, чтобы было понятнее, добавлю пару незначащих скобочек и табов в правильный код и в ваш: var num = 1; for ( ; num < 100; num++ ) { if ( num % 5 === 0 && num % 3 === 0 ){ document.write( num, " = FizzBuzz <br />" ) } else { if ( num%5 === 0 ){ document.write( num, " = Buzz <br />" ); } else { if ( num%3 === 0 ){ document.write( num, " = Fizz <br/ >" ); } else { document.write( num, "<br/ >" ); } } } } var num = 1; for( ; num <= 100; num++ ){ if( num%3 === 0 ){ document.write( num, " = Fizz <br/ >" ); } else { if (num % 5 === 0) { document.write(num, " = Buzz <br />"); } else { if (num % 5 === 0 && num % 3 === 0) { document.write(num, " = FizzBuzz <br />"); } else { document.write(num, "<br/ >"); } } } } |
Makarov,
Я понял как работает. Последовательно, сначала было 3, затем 5, затем 15. Так как изначально у нас в списке стоит 3 то и числу 15 будет присвоено Fizz. Последовательность. Спасибо |
KosBeg,
про "слишком уж учебные задачи". Конкретно вот это задача дала название целому классу задачек, их обычно так и называют "физзбазз задачки". Такой тип задач широко применяется на практике в одном конкретном случае. А случай такой: приходит собеседоваться на программиста какой-нибудь тип, и надо проверить, способен ли он хоть пару строчек кода написать. Резюме как правило верить сильно нельзя, в среднестатистическую контору на собеседование могут прийти какие-нибудь очень странные люди, вроде всяких студентов "с дипломом программиста", которые ничего серьезного в жизни не писали никогда. Такой чувак может обычно очень хорошо заговаривать зубы и иметь впечатляющее выдуманное резюме, но если попросить его решить какую-нибудь очень простую задачку на листочке, то он скорее всего сольется. То есть физзбазз задачки - это общая проверка на адекватность, что к нам именно программист пришел а не хрен с горы, и если прийти на собеседование в нормальную контору "с улицы", то что-нибудь такое решить предложат. |
Цитата:
|
KosBeg,
Ничо, пройдет, все мы ими когда-то были) Тебе 14 лет, в 14 лет это не страшно. Будешь постоянно заниматься программированием - к возрасту когда все твои сверстники будут максимум в макдональдсе работать станешь хорошим спецом |
Цитата:
for(var i=1;101>i;i++)console.log(i%5||i%3?i%3?i%5?i:"Buzz":"Fizz":"FizzBuzz"); |
Цитата:
То есть не проверка, а признак. Если вам начинают предлагать порешать физбуз - значит вы вливаетесь в команду недоумков и неадекватов. |
Например
Цитата:
Все что так перевел - не прошли, не сдали, уволены без выходного пособия, на пинковой тяге. Ах бл, они же принимают на работу... ну так о чем и базар. |
Хорошо, возьмем исходник
Write a program that uses console.log to print all the numbers from 1 to 100, with two exceptions. For numbers divisible by 3, print “Fizz” instead of the number, and for numbers divisible by 5 (and not 3), print “Buzz” instead. When you have that working, modify your program to print “FizzBuzz”, for numbers that are divisible by both 3 and 5 (and still print “Fizz” or “Buzz” for numbers divisible by only one of those). и типа правильный перевод FizzBuzz. Напишите программу, которая выводит через console.log все числа от 1 до 100, с двумя исключениями. Для чисел, нацело делящихся на 3, она должна выводить ‘Fizz’, а для чисел, делящихся на 5 (но не на 3) – ‘Buzz’.Когда сумеете – исправьте её так, чтобы она выводила «FizzBuzz» для всех чисел, которые делятся и на 3 и на 5. чтобы задать вопрос: какой недоумок пишет такую документацию? Вот так пишут Напишите программу, которая выводит через console.log все числа от 1 до 100 по следующим правилам. 1) Все числа кратные 3 заменить на текст ‘Fizz’ 2) Все числа кратные 5 (но не кратные 3) заменить на текст ‘Buzz’. 3) Иначе вывести число. Правильно сформулировал? Тогда вопрос - зачем автор баяна формулирует хуйдожественными екивоками? Варианты: 1) автор - тупой, 2) учит не программированию, а распознаванию хотелок заказчиков. Типа такой тренинг на бабку Вангу от жабы скрипучей. Короче, будете учиться на гамнямбах - тому и выучитесь. |
Цитата:
|
ПС: мое мнение такие задачки как Buzz даются на курсах сайтостроения и в сомнительных учебных заведениях. На практике живого-web'a их применение весьма сомнительно.
|
Цитата:
|
Цитата:
|
Цитата:
|
Я бы даже сказал что нормальный программист про такую неведомую е...ую х..ю как ваши баз-тесты вообще не знает.
|
Fizz Buzz задачка средняя как мог так решил.
<script>
var x=0; for(var i=1;i<=100;i++){ x=x+1; if(x%3==0){document.write("Fizz");} if(x%5==0){document.write("Buzz");} document.write(x + ";"+ "<br>"); } </script> Можно в консоли, но в браузер интереснее. |
kasshei@mail.ru,
Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [html run] ... минимальный код страницы с вашей проблемой [/html] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
Часовой пояс GMT +3, время: 03:38. |