Запишите вещественные числа, используя две формы( c фиксированной точкой и плавающей точкой) записи чисел (мантиссу нормализовать). -0,00000465, 7435,0023, 0,00762.
static void Main() { double a = float.Parse(Console.ReadLine()), b = float.Parse(Console.ReadLine()), c = float.Parse(Console.ReadLine()), d; if (a > b) swap(ref a, ref b); if (b > c) swap(ref c, ref b); if (a > b) swap(ref a, ref b); if (b > c) swap(ref c, ref b); d = Math.Sqrt(Math.Pow(a, 2) + Math.Pow(b, 2)); if (a + b <= c) { Console.WriteLine("Нет ▲"); } else { if (d == c) Console.WriteLine("Прямоугольный"); else if (d < c) Console.WriteLine("Тупоугольный"); else Console.WriteLine("Остроугольный"); } Console.ReadKey(false); } private static void swap(ref double a, ref double b) { double c = a; a = b; b = c; }
$result = array();
$arr = array ('310'=>0.5, '311'=>0.375, '312'=>0.1);
function rec($str) {
$sum = 0;
foreach ($str as $i) #Вычисляем уже имеющуюся сумму
$sum += $GLOBALS["arr"][$i];
if ($sum == 1.5)
$GLOBALS["result"][] = $str;
if ($sum > 1.5) return;
foreach ($GLOBALS["arr"] as $key=>$value) {
$hello = $str; #Не знаю, насколько это легально, но заработало только так...
$hello[] = $key;
rec($hello);
}
}
if (min(array_values($arr)) <= 0) die(); #Бесконечнная рекурсия должна быть предотвращена
rec(array());
foreach ($result as &$value) #Переделываем массив массивов в массив строк
$value = implode(', ', $value);
unset($value);
print_r($result);
?>