18.07.2015, 13:26
|
|
Аспирант
|
|
Регистрация: 05.04.2015
Сообщений: 52
|
|
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/ >" );
}
}
}
}
Последний раз редактировалось jack3dm, 18.07.2015 в 18:59.
Причина: Решение
|
|
18.07.2015, 13:55
|
|
Профессор
|
|
Регистрация: 22.05.2015
Сообщений: 384
|
|
Сообщение от jack3dm
|
Напишите программу, которая выводит через console.log все цифры от 1 до
100, с двумя исключениями. Для чисел, нацело делящихся на 3, она должна выводить ‘Fizz’, а для чисел, делящихся на 5 (но не на 3) – ‘Buzz’.
|
если я правлильно понял то нужно так
<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" это правильно?
|
|
18.07.2015, 14:00
|
|
Профессор
|
|
Регистрация: 22.05.2015
Сообщений: 384
|
|
Сообщение от jack3dm
|
Когда сумеете – исправьте её так, чтобы она выводила «FizzBuzz» для всех
чисел, которые делятся и на 3 и на 5.
|
костыльный вариант но работает
<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>
|
|
18.07.2015, 14:21
|
|
Аспирант
|
|
Регистрация: 05.04.2015
Сообщений: 52
|
|
Да вот как раз и прикол что число 15 не должно попадать.
То есть "делящихся на 5 (но не на 3) – ‘Buzz’"
Число 15 делится на 3, как и 30, 45, 60, 75, 90.
Вот и думаю.
Кстати да, я что то провтыкал на счет "=="
писал
num % 5
вместо
num % 5 == 0
|
|
18.07.2015, 14:26
|
|
Профессор
|
|
Регистрация: 08.07.2013
Сообщений: 212
|
|
Два парня, впервые увидевшие fizzbuzz и вместе выясняющие как его решать, у меня на глаза ща навернутся слезы умиления =)
|
|
18.07.2015, 14:28
|
|
Аспирант
|
|
Регистрация: 05.04.2015
Сообщений: 52
|
|
Ну ты это) Макаров) помоги нет?))
|
|
18.07.2015, 14:30
|
|
Профессор
|
|
Регистрация: 08.07.2013
Сообщений: 212
|
|
jack3dm, Так эта задача проста как пять копеек, и ее важно написать самому, если я ща решение напишу, какой смысл в ней будет?)
Ну то есть не нужно здесь тонкостей языка вообще, нужно составить простейший алгоритм. А умение составлять алгоритмы самому для программиста ну очень важно.
Мне кажется имеет смысл подсказывать человеку по проблемам языка, или по какой-то не очень тривиальной задачке, а такое надо самому делать влет, этому за вас никто не научится
Последний раз редактировалось Makarov, 18.07.2015 в 14:34.
|
|
18.07.2015, 14:59
|
|
Аспирант
|
|
Регистрация: 05.04.2015
Сообщений: 52
|
|
Да понятно что здесь нужно использовать
&& в
}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)
Но как её правильно записать я не знаю.
|
|
18.07.2015, 15:30
|
|
Профессор
|
|
Регистрация: 22.05.2015
Сообщений: 384
|
|
я новичок, мне простительно)
Сообщение от Makarov
|
впервые увидевшие fizzbuzz
|
я вообще никаких книг по js не читал, поэтому таких заданий не встречал,
те задания слишком уж учебные(но я не всегда могу их решить, но при этом решаю задания и посложнее)
|
|
|
|