[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Таблица умножения
Страницы: 1, 2, 3
walerus
Chapollino86
Цитата
у walerus очень похоже, но от цикла вылазит ошибка.
Какая ошибка?, оба числа 1368, 2058 - отрабатывают без проблем и бОльшие числа, так же отрабатывают..

Цитата
Хотелось бы как функцию вызывать. Указываешь кол-во разрядов в данном случае три и диапазон для разрядов.
Я и написал функцию, "почти" такую.

Сам не знаешь что хочешь.. - "Указываешь кол-во разрядов и диапазон", тут же пишешь:
Цитата
в этом случае 3 разряда. диапазон размера по формуле (1*7)*(2*7)*(3*7)
если 4 разряда тогда диапазон размера по формуле (1*7)*(2*7)*(3*7)*(4*7)
если 7 разрядов тогда диапазон размера по формуле (1*7)*(2*7)*(3*7)*(4*7)*(5*7)*(6*7)*(7*7)
и так далее.
зачем тогда нужно указывать диапазон, если его можно высчитать?...

И поясни, почему множитель именно 7 ?, а не 5,9,6...

Да и вообще, что за комбайн ты строишь?
Chapollino86
попробую через формулу (n!*x)*(n-1*x)!
в данном случае n=3 x=7
Лучше, не таблица умножения, а счётчик с параметрами,
при n=3 x=7 получаем

n1*n2*n3 = schot

n1=от 1 до (n1*x)=7
n2=от 1 до (n2*x)=14
n3=от 1 до (n3*x)=21
...........
n7=от 1 до (n7*x)=49

и обратная функция.
schot = n1*n2*n3
Chapollino86
walerus, добавил цикл от 1 до 2058 не могу понять почему ошибка.
Деление на ноль вроде.
http://8v7.ru/entropy/777/
сократил от 1 до 558 чтобы сервер сильно не грузить.


<?php

function
FindMaxNumber( $number, $range_min = 1, $range_max = 100 ){

$i = 1;
while(true){

$result = $number / $i;
if ( (($number%$i) == 0) && ($result > $range_min) && ($result <= $range_max) ){
return $result;
}

$i++;

if ( $result <= $range_min ){
return false;
}
}
}



for ($a = 1; $a <= 2058; $a++) {
$number = $a;


$number_3 = FindMaxNumber( (($number/ $number_1)/ $number_2), 1, 7 ); // 72 / 12 = 6 => 6
$number_2 = FindMaxNumber( ($number/ $number_1) , 1, 14 ); // 1368 / 19 = 72 => 12
$number_1 = FindMaxNumber( $number, 1, 21 ); // => 19


echo "<br>".$number_1 . "|" . $number_2 . "|" . $number_3;

$itog = $number_1 * $number_2 * $number_3;
if ( $itog == $number ){
echo "Условие выполнено, число $number:\n";
echo $number_1 . " * " . $number_2 . " * " . $number_3 . " = " . $itog . "\n";
}else{
echo "Условие НЕ выполнено, число $number, необходимо увеличить диапазон выборки чисел\n";
echo $number_1 . " * " . $number_2 . " * " . $number_3 . " = " . $itog . "\n";
}


}


?>


Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.