Skip to content

19.09.2011

4.Команда повторения

Решения задач к 4 лекции:

1.Задано n. Сложить только четные числа: 2 + 4 + 6 + …+ 2n.

2.Задано n. Сложить квадраты: 12 + 32 + 52 + …+ (2n – 1)2.

3.Вычислить n!

4.Сложить сумму факториалов от 1! до 30!.

5.Решить задачу о кроликах, написав программу, которая получает номер месяца и выводит количество пар кроликов в данном месяце.

6.Подсчитать выражение выражение
7.Решить первую задачу с http://projecteuler.net/ Переводы задач на русский находятся на http://euler.jakumo.org/

Ну-с приступим =). Я буду юзать цикл for, более нагляден. О синтаксисе и семантике в лекции №5.
№1:
1.Задано n. Сложить только четные числа: 2 + 4 + 6 + …+ 2n.

<script>
sum = 0;
n = 10;
for(i = 1; i <= n; i++)
sum += 2 * i;
</script>

№2:
Задано n. Сложить квадраты: 12 + 32 + 52 + …+ (2n – 1)2.

<script>
n = 10;
for(i = 1; i <= n; i++)
{
sum += (2 * i - 1) * (2 * i - 1);
}
alert(sum);
</script>

№3:
3.Вычислить n!

n! = 1*2*3*…*n

<script>
n = 10;
fact = 1;
for(i = 1; i <= n; i++)
{
fact *= i;
}
alert(fact);
</script>

№4:
4.Сложить сумму факториалов от 1! до 30!.

<script>
n = 30;
fact = 1;
sum = 0;
for(i = 1; i <= n; i++)
{
fact *= i;
sum += fact;
}
alert(sum);
</script>

№5
Решить задачу о кроликах, написав программу, которая получает номер месяца и выводит количество пар кроликов в данном месяце.

Знаю 3 решения (цикл, рекурсия и массив), самый легкий как по мне с рекурсией, но именно для этой задачи в нем есть недостаток — для каждого нового числа фибоначчи он будет каждый раз считать предыдущие. Ладно, кодим. Еще будет использоваться новая функция document.write. Гуглите в общем;)

<script>
f1 = 1;
f2 = 1;
f3 = 0;
n = 10; //кол-во месяцев
for(i = 3; i <= n; i++)
{
  f3 = f1 + f2;
  document.write(i + " " + f3 + "<br>"); //станет понятно когда пройдем строки
  f1 = f2;
  f2 = f3;
}
</script>

Если очень приспичит решение с рекурсией или массивом, пишите, выложу в комментах.

№6

Подсчитать выражение (картинка сверху). 

<script>
n = 30;
sum = 1;
for(i = 1; i <= n; i++)
{
sum = 1 + 1/(1 + sum);
}
alert(sum);
</script>

№7
Если выписать все натуральные числа меньше 10, кратные 3 или 5, то получим 3, 5, 6 и 9. Сумма этих чисел — 23.

Найдите сумму всех чисел меньше 1000 кратных 3 или 5.

Итак перебираем все числа от 1 до 1000 и проверяем на кратность 3 или 5.

<script>
sum = 0;
for(i = 1; i < 1000; i++)
{
if ((i%3=0)||(i%5=0))
  sum += i;
}
alert(sum);
</script>

Вот и все задачи.

Share your thoughts, post a comment.

(required)
(required)

Note: HTML is allowed. Your email address will never be published.

Subscribe to comments