Штудирую книгу ильи) усложнил себе задание
вот тут решил хитрую штуку замутить, и сделать через while рекурсию парсить) и не выходит.
var num = prompt("число",2); var exp = prompt("степень", 10); var result = 1; var cnt = 1; function pow(num, exp){ while(cnt<=exp){ result*=num; cnt++; } return alert(result);} мб помогут разобраться где я делю ошибку, через цикл фор все должно прекрасно работать а с вайлом беда) давайте раберемся ребята) |
kaflan,
function pow(){ var num = prompt("число",2); var exp = prompt("степень", 10); var result = 1; var cnt = 1; while(cnt<=exp){ result*=num; cnt++; } return result} alert(pow()); |
А в чем проблема? Твой код работает
var num = prompt("число",2); var exp = prompt("степень", 10); var result = 1; var cnt = 1; function pow(num, exp){ while(cnt<=exp){ result*=num; cnt++; } return alert(result);} pow(num, exp) Проблема в том, что ты ее не вызвал?:) Или "рекурсию парсить" не получается? Попробуй через моноид, в категории эндофункторов. |
Цитата:
|
Цитата:
|
Цитата:
По поводу парсинга -- тоже не в кассу. Парсинг -- это обработка текста, грубо говоря. Не употребляй слова, значения которх не знаешь. |
Цитата:
|
Цитата:
|
Цитата:
fact=function(n){if(n<2) return n; return n*fact(n-1)} alert(fact(5)) // 120 И нет тут никакой рекурсии в рекурси, это просто рекурсия. И это не здорово, просто иногда бывает удобней написать рекурсивно, например, при обходе дерева, но в общем случае, такого кода надо избегать, так как это дерьмо отжирает много памяти. Любой рекурсивный код можно переписать в виде цикла. |
Цитата:
|
такнашел еще интересное задание по циклам).
Цитата:
|
kaflan,
на форуме есть ответы :victory: Цитата:
|
var spc = " "; var num = "#"; var lines = +prompt("число линий", 8); var row = +prompt("число символов в строке включая ' ' ",8); var result = ""; for(var i = 0; i < lines; i++ ) { for(var n = 0; n < row; n++) { if (row%2==0) { if (lines%2 == 0) { result += num; } else { result += spc; } } else{ if(line % 2 == 0) { result+=spc; }else { result+=num; } } } console.log(result); } как то так. вот) склепал ) еще не тестил но кажеться я на правильном пути постигания матана в джава скрипте) http://jsfiddle.net/Kaflan/qd0gLenn/8/ ох матан идет тугенько.... путаюсь пока с двумя циклами которые должны давать , результат результата пока нет, того что нужен нет доски а есть не понятная штука. годный инструмент для создания рандомной карты... |
Жутко усложняешь. Весь перебор можно уместить в пять строк.
И поработай над форматированием, оно у тебя жутко хромает, читать невозможно) |
я учусь. кароче не значит, читабельне.
Цитата:
http://jsfiddle.net/Kaflan/qd0gLenn/11/ вот подскажи как укоротить чтобы даже новичек понял код |
Цитата:
Цитата:
Цитата:
var result = "\n"; for (var row = 1; row <= 8; row++) { for (var cell = 1; cell <= 8; cell++) { result += (row % 2 == cell % 2) ? "#" : " "; //Можно еще побитово - (row & 1 == cell & 1) } result += "\n"; } console.log(result); Вообще, есть золотое правило - чем код короче, тем он лучше. |
Цитата:
вот золотые правила: http://habrahabr.ru/post/144611/. Но там нет SOLID, так что принципов может быть немного больше :) |
Имею в виду, что чем короче код, тем проще его писать, читать, вспомнить и расширять. Естественно, я не о количестве символов, а о количестве логики.
|
Цитата:
|
Цитата:
|
:)
<script> var a = Array(5).join('#_'), b = Array(5).join('_#'), c = Array(5).join(a + '<br>' +b + '<br>'); document.write(c) </script> |
Конкурс извратов? :)
var result = ""; for (var i = 1; i <= 8; i++) result += "#_".repeat(4).split("")[i & 1 ? "slice" : "reverse"]().join("") + "\n"; alert(result); |
Цитата:
Цитата:
|
var result = 0; function countChar(b, n) { for (var i = 0; i < b.length; i++) { if (b.charAt(i) == n) { result += i; } }console.log(result); } console.log(countChar("hendhendhend", "e")) полчуаеться 15. хотя должно быть 3. я даже понимаю чего 15, но не понимаю чего оно 3 не показует. наверное я еще что то путаю) подсобите |
Цитата:
|
Цитата:
http://jsfiddle.net/Kaflan/6tcogb16/6/ как то так |
Цитата:
|
Много лишних действий. Зачем ты собираешь из совпадений строку и возвращаешь ее длину, когда можно просто возвратить количество совпадений? И называй переменные понятно, что значат эти твои b, n?
|
Цитата:
|
Цитата:
|
Erolast,
понял вы смотрите код в песочнице ... незаметил что ссылку туда добавили. |
ребят пасиба. за наставления. Да согласен нащед области видимости. Но как еще, можно заделать длину? просто, как по мне самый простой способ хоть, и не самый ефективный.
|
kaflan, а счастье было так близко ...
function countChar(b, n) {var result = 0; for (var i = 0; i < b.length; i++) { if (b.charAt(i) == n) { result ++; } }return result; } alert(countChar("hendhendhend", "e")) |
друг мой, ракую спасибо
Цитата:
|
Ну так выкладывай.
|
Цитата:
вот как то так) очень классная книга..... мое мышление становиться математическим это так замечательно. |
Цитата:
|
Цитата:
|
kaflan,
Я пошутил, не бери в голову:) |
Цитата:
|
Часовой пояс GMT +3, время: 07:20. |