[Учебник 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, время: 13:18. |