Штудирую книгу ильи) усложнил себе задание
вот тут решил хитрую штуку замутить, и сделать через 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, время: 10:12. |