maximka787
19.12.2014 - 16:08
Парни привет. Чёт застрял на самом простом... Мозг затормозил...
Есть массив array(1,2,3)
Нужно к каждому элементу прибавить значение предыдущего + 30%.
Задаем цифру 100, первому элементу значение 30% от ста. Второму элементу надо дать 30% от значения предыдущего и так по кругу, по всем 3-м элементам.
Должно получиться
array(
1 => 30,
2 => 39,
3 => 41,7
)
На самом деле механизм сложнее, но мне понять. как проще. Я делаю рекурсией, но пока не сделал. Циклы foreach, while в идеале использовать, но либо я туплю, либо они тут не катят.
_____________
..Работает - не трогай!
AllesKlar
19.12.2014 - 16:24
определись с ТЗ
Цитата |
Нужно к каждому элементу прибавить значение предыдущего + 30%. |
или
Цитата |
Задаем цифру 100, первому элементу значение 30% от ста. Второму элементу надо дать 30% от значения предыдущего и так по кругу, по всем 3-м элементам.
|
Просто 30% от предыдущего или 130% от предыдущего?
$n = 100;
$arr[0] = $n * 0.3;
for( $i = 1; $i < count($arr); $i++)
{
$arr[$i] = $arr[$i - 1] * 1.3;
}
_____________
[продано копирайтерам]
SoMeOnE
19.12.2014 - 16:41
AllesKlar
19.12.2014 - 16:47
SoMeOnE
Зачем? Чтобы кода было больше?
Там 3 строки, включая цикл.
_____________
[продано копирайтерам]
maximka787
19.12.2014 - 17:00
AllesKlar
Да, все верно. Оказывается можно и без рекурсии.
А можете подсказать, более конкретно. Там чуть чуть не так.
Мне нужно сделать вот как:
есть 3 элемента.
Первому элементу присваиваем 60% от 100 (100 это 100%).
второму 60% от первого
третьему 60% от второго.
_____________
..Работает - не трогай!
AllesKlar
19.12.2014 - 17:06
maximka787ээээ, ты серьёзно?
Это же изучают на уроках математики. Не на алгебре, а еще на математике. Тема - пропорции.
Ну, раз всё так плохо, вот тебе универсальное решение.
$n = 100;
$p = 60;
$arr[0] = $n / 100 * $p;
for( $i = 1; $i < count($arr); $i++)
{
$arr[$i] = $arr[$i - 1] / 100 * $p;
}
И про 90% даже не спрашивай, не буду делать.
_____________
[продано копирайтерам]
maximka787
19.12.2014 - 17:35
AllesKlar
Благодарю.
Ты не поверишь, но я забыл совсем про [$i - 1]
ну хоть убей) полез в рекурсию.
_____________
..Работает - не трогай!
SoMeOnE
19.12.2014 - 17:36
AllesKlar
Я замеры не делал. Но думаю выигрыш в скорости будет) На трех элементах)))
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.