
28.12.2009, 01:28
|
|
Познающий
Регистрация: 21.01.2007
Сообщений: 69
Провел на форуме: 211655
Репутация:
4
|
|
Сообщение от dk-ne
set_time_limit(0);
$znaki = array ('+','-','*','/');
$odin = array (' ','-');
$SUM = 0;
$n = 0;
$end = (bcpow(4, 9, 0) - 1);
$sss = 0;
do
{
$sum = $SUM;
$a1 = $sum % 4;
$sum = ($sum - $a1)/ 4;
$a1 = $znaki[$a1];
$a2 = $sum % 4;
$sum = ($sum - $a2)/ 4;
$a2 = $znaki[$a2];
$a3 = $sum % 4;
$sum = ($sum - $a3)/ 4;
$a3 = $znaki[$a3];
$a4 = $sum % 4;
$sum = ($sum - $a4)/ 4;
$a4 = $znaki[$a4];
$a5 = $sum % 4;
$sum = ($sum - $a5)/ 4;
$a5 = $znaki[$a5];
$a6 = $sum % 4;
$sum = ($sum - $a6)/ 4;
$a6 = $znaki[$a6];
$a7 = $sum % 4;
$sum = ($sum - $a7)/ 4;
$a7 = $znaki[$a7];
$a8 = $sum % 4;
$sum = ($sum - $a8)/ 4;
$a8 = $znaki[$a8];
$a9 = $sum % 4;
$sum = ($sum - $a9)/ 4;
$a9 = $odin[$a9];
$SUM++;
$n++;
eval("\$otv = {$a9}1{$a8}2{$a7}3{$a6}4{$a5}5{$a4}6{$a3}7{$a2}8{$ a1}9;");
if ($otv == 99)
{
echo "{$a9}1{$a8}2{$a7}3{$a6}4{$a5}5{$a4}6{$a3}7{$a2}8{ $a1}9<br>";
$sss++;
}
}
while ($n <= $end);
echo "Итого $sss вариантов";
Спс. Добавил $n++ в цикл. И вот что получилось:
1+2+3+4*5-6+7+8*9
1+2-3+4+5*6+7*8+9
1+2-3+4+5*6-7+8*9
1*2+3+4+5+6+7+8*9
1*2+3-4*5+6*7+8*9
1*2-3*4+5*6+7+8*9
1*2-3*4-5+6*7+8*9
1*2*3+4*5-6+7+8*9
1*2*3*4*5/6+7+8*9
1/2/3*4*5*6+7+8*9
-1+2*3+4+5+6+7+8*9
-1+2*3-4*5+6*7+8*9
-1+2*3*4+5+6+7*8+9
-1+2*3*4+5+6-7+8*9
-1-2+3+4+5*6+7*8+9
-1-2+3+4+5*6-7+8*9
-1-2+3*4+5+6+7+8*9
-1-2-3+4*5+6+7+8*9
-1-2-3-4+5*6+7+8*9
-1-2-3-4-5+6*7+8*9
-1*2+3*4*5+6*7+8-9
-1*2+3*4*5-6+7*8-9
-1*2*3+4*5+6+7+8*9
-1*2*3-4+5*6+7+8*9
-1*2*3-4-5+6*7+8*9
1+2+3+4*5-6+7+8*9
1+2-3+4+5*6+7*8+9
1+2-3+4+5*6-7+8*9
1*2+3+4+5+6+7+8*9
1*2+3-4*5+6*7+8*9
1*2-3*4+5*6+7+8*9
1*2-3*4-5+6*7+8*9
1*2*3+4*5-6+7+8*9
1*2*3*4*5/6+7+8*9
1/2/3*4*5*6+7+8*9
1+2+3+4*5-6+7+8*9
1+2-3+4+5*6+7*8+9
1+2-3+4+5*6-7+8*9
1*2+3+4+5+6+7+8*9
1*2+3-4*5+6*7+8*9
1*2-3*4+5*6+7+8*9
1*2-3*4-5+6*7+8*9
1*2*3+4*5-6+7+8*9
1*2*3*4*5/6+7+8*9
1/2/3*4*5*6+7+8*9
Итого 45 вариантов
И тут блин опять повторы. Как отредактировать код чтоб он нормально все считал?
|
|
|