[Учебник javascript]Одну из задач не могу понять
Напишите функцию pow(x,n), которая возвращает x в степени n (для натуральных n). Иначе говоря, умножает x на себя n раз и возвращает результат.
pow(3, 2) = 3*3 = 9 pow(3, 3) = 3*3*3 = 27 pow(1, 100) = 1*1*...*1 = 1 Создайте страницу, которая запрашивает x и n, а затем выводит результат pow(x,n) Вот что написано в решении: <script> function pow(x, n) { var result = x for(var i=1; i<n; i++) { result *= x; } return result } var x = prompt("x?", '') var n = prompt("n?", '') alert( pow(x, n) ) </script> мой маленький мозг не догоняет, что да как. прошу объяснить;) |
и еще.
почему половина этой главы написана на англ.яз. http://beta.javascript.ru/tutorial/exceptions |
Цитата:
1. Бросить это дело 2. Записаться на операцию по увеличению мозга Цитата:
|
ну, бросать я не буду.
операция дорогая;( эх. придется дальше учить |
правильно, не бросай сразу.
for (var i = 1; i < n; i++) { result *= x; } Это значит простой цикл. Все что внутри будет повторяться пока i меньше n, и на каждом шаге идет увеличение i на один. result *= x; Это тоже самое что и result = result * x; Можно написать еще более прикольный вариант, посложнее: function pow(x, n) { if (n == 1) return x; return x * pow(x, n - 1); } |
ваый, наркоман штоле?)
|
Цитата:
на самом деле, написал эту хрень, и тоже подумал, что что-то я переработался сегодня.. |
Повеселили... :D
|
MarkZ, могу посоветовать выучить другой язык программирования)
В js я тоже новичок : ) Но попробую растолковать. Если где-то не прав, думаю, меня поправят: // Определение ф-ции, и кол-во переменных, кот. она будет обрабатывать. Хотя, последнее спорно) function pow(x, n) { // Объявить переменную с областью видимости внутри функции, присвоить ей значение x var result = x; // Цикл (выполняется, пока условие истинно): // 1. объявляем переменную i, присваиваем ей значение 1 // 2. собственно, само условие, кот. проверяется на каждом проходе цикла // 3. инкремент, опять-таки каждую итерацию for(var i=1; i<n; i++) { // присвоение с умножением, все равно, что result = result * x result *= x; } // значение, кот. возвращает функция return result; } |
Часовой пояс GMT +3, время: 10:24. |