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
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.