Софтуерно Инженерство
Loading...
+ Нов въпрос
torozov avatar torozov 1 Точки

[Software Technologies] PHP - Numbers from N to 1

Задачата е буквално 2 реда, но ми гърми лимита за време:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>First Steps Into PHP</title>

</head>
<body>
    <form>
        N: <input type="text" name="num" />
        <input type="submit" />
    </form>
    <?php
    if (isset($_GET["num"])){
        for ($i = $_GET["num"];$i > 0;$i--){
            echo $i . " ";
        }
    }
    ?>
</body>
</html>

https://judge.softuni.bg/Contests/Practice/Index/236#5

Тагове:
0
Софтуерни технологии 08/08/2017 17:58:30
torozov avatar torozov 1 Точки

Пробвах си с do while, но отново гърми за време.

ЕДИТ: intval-нах $num и всичко заспа :)

0
07/08/2017 10:55:07
worminer avatar worminer 104 Точки

Здравей,
Това би трябвало да е доста по оптимизирано като скорост ама пак не минава което ме навежда на мисълта,че теста не е в ред.

<?php
	$startTime = microtime(true);
		if (isset($_GET["num"])){
			if ($_GET["num"] !== '' && intval($_GET["num"]) == $_GET["num"]) {
				// не е добра идея да се ползва $_GET директно в loop защото е бавна операция
				// никога не вярвай на потребителки инпут
				$num = intval($_GET["num"]);
				// извеждането на данни е бавна операция, затова първо записваш резултата в променлива и тогава я извеждаш..
				$result = '';
				for ($i = $num ; $i > 0 ; --$i){
					$result .= $i . ' ';
				}
				echo $result;
			}			
		}		
    echo "Time:  " . ( microtime(true) - $startTime) . " Seconds\n";
?>

 

0
07/08/2017 15:57:15
torozov avatar torozov 1 Точки
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>First Steps Into PHP</title>

</head>
<body>
    <form>
        N: <input type="text" name="num" />
        <input type="submit" />
    </form>
    <?php
    if (isset($_GET["num"])){
        $num = intval($_GET["num"]);
        do{
            echo $num . " ";
            $num--;
        }while($num > 0);
    }
    ?>
</body>
</html>

 

0
worminer avatar worminer 104 Точки

да и с do-while пробвах ама пак даваше грешка.. може времено да е забозил джъджа или нещо такова..
 

 do{
    echo $num . " ";
}while($num--);

впрочем и това е валиден синтаксис..

0
SimeonVSimeonov avatar SimeonVSimeonov 1 Точки

Трябва да се парсне към инт така минава.

$num = intval($_GET['num']);
0
01/04/2018 11:49:44