Здравствуйте, как я могу выполнить такое?
1^1=1
1^1 + 2^2=5
1^1 + 2^2 + 3^3=31
1^1 + 2^2 + 3^3 + 4^4=284
...
1^1 + 2^2+ .. + n^n=?
Пробую как то так:
for ($x = 1; $x < 10; $x++)
{
$y = $x-1;
$o = $y-1;
$u = bcpow($x, $x)+bcpow($y, $y);
echo "$o<sup>$o</sup>+$y<sup>$y</sup>+$x<sup>$x</sup>= ".$u."<br>";
}
В итоге выходит как то так:
-1^-1 + 0^0 + 1^1 = 2
0^0 +1^1 + 2^2 = 5
1^1 +2^2 + 3^3 = 31
2^2 +3^3 + 4^4 = 283
3^3 +4^4 + 5^5 = 3381
4^4 +5^5 + 6^6 = 49781
5^5 + 6^6 + 7^7 = 870199
6^6 + 7^7 + 8^8 = 17600759
7^7 + 8^8 + 9^9 = 404197705
В общем, как это можно сделать по человечески? Помогите, пожалуйста!
upd. функция из ответа leninel, только без регулярного и eval:
function f_nat_number ($n, $a = []) {
if ($n == 0) {
$terms = implode (' + ', array_reverse ($a));
$sum = str_replace ('^', '**', $terms);
echo $terms;
$sum = explode('+', $sum);
foreach ($sum as &$key) {
$key = explode('**', $key);
$key = pow($key[0], $key[1]);
}
return ' = ' .array_sum($sum).'<br/>';
}
else {
$a [] = "{$n}^{$n}";
return f_nat_number ($n - 1, $a);
}
}
for ($n = 1; $n <= 10; $n++)
echo f_nat_number ($n);
<?php
function f ($n, $a = []) {
if ($n == 0) {
$e = implode (' + ', array_reverse ($a));
return preg_replace ('#\^(\d+)#', '<sup>$1</sup>', $e) . ' = ' . eval ('return ' . str_replace ('^', '**', $e) . ';') . '<br/>';
}
else {
$a [] = "{$n}^{$n}";
return f ($n - 1, $a);
}
}
for ($i = 1; $i <= 5; $i++)
echo f ($i);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Подскажите, пожалуйста, как построить дерево из строк? Имеется массив:
Нужно настроить работу роутера в джумла таким образом, что бы, если мы заходим по адресу siteru?iffjj=3 адрес в адресной строке сохранялся, не редиректило,...
При загрузке xml страницы в браузере выдает ошибку error on line 62164 at column 28: Input is not proper UTF-8, indicate encoding ! Bytes: 0x0F 0xE2 0x80 0x93