У меня нет проблем с английским, честное слово (скорее всего с русским). Но, есть задание которое не очень понятно для меня (учитель решил на английском давать).
Цитата |
3.Write a program that asks the user to type an integer N and compute u(N) defined with : u(0)=3 u(1)=2 u(n)=n*u(n-1)+(n+1)*u(n-2)+n |
<?php
echo "Enter a number";
$n=(int)fgets(STDIN);
if ($n==0)
{
$u=3;
}
else if ($n==1)
{
$u=2;
}
else if ($n>1 || $n<0)
{
$u=(($n*2+$n*2)+$n)/(1+2*$n+2);
}
echo $u;
?>
u(n)=n*u(n-1)+(n+1)*u(n-2)+n
Цитата |
u(0)=3 u(1)=2 |
Цитата |
u(1)=2 |
Цитата (Valeriya12 @ 17.03.2014 - 15:21) |
Если я правильно Вас поняла.... |
Цитата (Valeriya12 @ 17.03.2014 - 11:21) | ||
Если я правильно Вас поняла, скажем, что пользователь вводит 6 Значит, что: u(n)=n*u(n-1)+(n+1)*u(n-2)+n Будет: u(n)=6*u(6-1)+(6+1)*u(6-2)+6 u(n)=6*u(5)+(7)*u(4)+4 u(n)=u(30)+*u(28)+4 И пока
значит, что: u(n)=60+56+4 u(n)=120 Как логика? |
function u($n){
if($n === 0) return 3;
elseif($n === 1) return 2;
else {
//n*u(n-1)+(n+1)*u(n-2)+n
return $n*u($n-1)+($n+1)*u($n-2)+$n;
}
}
echo u(6);
Цитата (Oyeme @ 17.03.2014 - 11:32) |
Вы пытаетесь решить как математическое уравнение |
Цитата (Oyeme @ 17.03.2014 - 15:32) |
Вот сделал для Вас |
Цитата |
Прочитайте что такое Числа Фибоначчи |
Цитата |
Моё мнение - "оказал медвежью услугу". Пока подсказывал, в какую сторону думать, то да, был прав. Но вот писать такой простой код за кого-то? Человек не научится сам программировать. |
Цитата (Valeriya12 @ 17.03.2014 - 21:11) |
Все еще не знаю как можно заранее определять, что здесь надо с Числами Фибоначчи работать. |
Цитата |
Когда в ответе появились "числа Фибоначи", то я примерно так и подумал.... Да не надо тут с ними работать!!! smile.gif Они были приведены в качестве ПРИМЕРА РЕКУРСИИ, не более того smile.gif |
<?php
echo "please choose a number \n";
$a=trim(fgets(STDIN));
$fac=1;
for ($x=$a; $x>=1; $x--) {
$fac = $fac * $x;
}
echo "Factorial of " . $a . " is " . $fac . "";
?>
Цитата |
Write a program that asks the user to type an integer N and compute u(N) defined with : u(0)=1 u(1)=1 u(n+1)=u(n)+u(n-1) |
<?php
$n=(int)fgets(STDIN);
function u($n){
if($n === 0) return 1;
elseif($n === 1) return 1;
else {
return u($n)+u($n-1);
}
}
echo u($n+1);
?>