Potřeboval jsem narychlo zbastlit program, který by našel čísla odpovídající těmto parametrům
Za úkol je najít dvě přirozená čísla, která když zaokrouhlím na desítky tak
- podíl zaokrouhlených čísel je stejný jako podíl čísel původních
- součin zaokrouhlených čísel je o 295 větší než součin původních čísel
- součet zaokrouhlených čísel je o 6 větší než součin původních čísel
Čísla jsou v intervalu 1-1000
Napsal jsem tento kód, ale vyhazuje to nesmyslné výsledky
<?php
$s=0;
for ($i = 1; $i < 1000; $i++)
{
$n1=rand(1,1000);
$n2=rand(1,1000);
$rn1=round($n1/10)*10;
$rn2=round($n2/10)*10;
if (($rn1/$rn2)==($n1/$n2) and (($rn1*$rn2+295)==($n1*$n2)) and ($rn1+$rn2+6)==($n1+$n1));
{
echo '<br>';
echo "n1 = ";
echo $n1;
echo " n2 =";
echo $n2;
echo '<br>';
echo "rn1 = ";
echo $rn1;
echo " rn2 = ";
echo $rn2;
echo '<br>';
break;
}
}
?>
PHP není zrovna můj šálek kávy, ale přišel jsem o notebook a mám jeden půjčený kam nemůžu NetBeans instalovat, takže jediná možná volba byla PHP.
Fórum › PHP
Hledání čísla v množině N, 3 podmínky
![](img/forum_vlakno_help_vyreseno.png)
![](http://img.programujte.com/web/forum_moznosti_nahlasit.png)
![](http://img.programujte.com/web/forum_moznosti_info.png)
ked hladas tie cisla od 1 po 1000, tak preco ich generujes nahodne???
for ($i1 = 1; $i1 <= 1000; $i1++) {
for ($i2 = 1; $i2 <= 1000; $i2++) {
//...
}
}
cize $i1 je prve prirodzene cislo a $i2 druhe....
a tam si dosadis len tu rovnicu tak aby pri zhode (s pouzitim break(); ) s ohladom na zadanie vyplula spravny vysledok...
ak som to nepochopil tak sorry , matiku moc nemusim, a skor som uvazoval "sedliackym" rozumom...
ale urcite ti poradi KIIV.... pockaj si na neho :smile1:
![](http://img.programujte.com/web/forum_moznosti_nahlasit.png)
![](http://img.programujte.com/web/forum_moznosti_info.png)
Zkoušel jsem, ale někde tam mám nekonečnou smyčku a nemůžu to najít :-/
Edit: Sakra mazání příspěvků je zakázaný a připojit přílohu taky nejde? :D
http://pastebin.com/m2c867f11
![](http://img.programujte.com/web/forum_moznosti_nahlasit.png)
![](http://img.programujte.com/web/forum_moznosti_info.png)
jen dodám, že v daných funkcích se může klidně používat rovnou return s výrazem, je to taký začátečniký nešvar, že kontroluji jestli je něco pravda, a podle toho vracim true, nebo false, normálně tam může být:
return $podil_zaokrouhleny == $podil_puvodni;
//respektive
return $soucin_zaokrouhleny == $soucin_puvodni+295;
//respektive
return $soucet_zaokrouhleny == $soucin_puvodni+6;
jinak osobne bych pouzival taky ten for cyklus, jak navrhoval marioff :)
![](http://img.programujte.com/web/forum_moznosti_nahlasit.png)
![](http://img.programujte.com/web/forum_moznosti_info.png)
To Golem : Ten script, ktery jsi napsal, se bude chtít 1000x zopakovat a pokazde ti vygeneruje dve cisla od 1 do 1000 a pokud to cislo projde tim if, zastavi script a tato cisla vypise.
A ty potrebujes najit vsechny nebo cisla v intervalu 1-1000 nebo prvni vyskit ??
btw odhaduju zpravne ze pokud chces cislo zaokrouhlit na desitky bude muset byt vetsi nez 4 ptze jinak bude $rn1,2 = 0
![](http://img.programujte.com/web/forum_moznosti_nahlasit.png)
![](http://img.programujte.com/web/forum_moznosti_info.png)
To polonium : Vlastně si jen popsal to, co jsem napsal ve skriptu výše :) Ale porád mi vrtá hlavou kde jsem udělal chybu :-/
![](http://img.programujte.com/web/forum_moznosti_nahlasit.png)
![](http://img.programujte.com/web/forum_moznosti_info.png)
![](img/forum_nove_psp_new.png)
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
![](/img/smile/1.gif)
![](/img/smile/2.gif)
![](/img/smile/3.gif)
![](/img/smile/4.gif)
![](/img/smile/5.gif)
![](/img/smile/6.gif)
![](/img/smile/7.gif)
![](/img/smile/8.gif)
![](/img/smile/9.gif)
![](/img/smile/10.gif)
![](/img/smile/11.gif)
![](/img/smile/12.gif)
![](/img/smile/13.gif)
![](/img/smile/14.gif)
![](/img/smile/15.gif)
![](/img/smile/16.gif)
![](/img/smile/17.gif)
![](/img/smile/18.gif)
![](/img/smile/19.gif)
![](/img/smile/20.gif)
![](/img/smile/21.gif)
![](/img/smile/22.gif)
![](/img/smile/23.gif)
![](/img/smile/24.gif)
![](/img/smile/25.gif)
![](/img/smile/26.gif)
![](/img/smile/27.gif)
![](/img/smile/28.gif)
![](/img/smile/29.gif)
![](/img/smile/30.gif)
![](/img/smile/31.gif)
![](/img/smile/32.gif)
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Podmínky — založil martin
Podmínky ve VB — založil Stanislav.Ospaly
Podmínky... — založil laik
Podmínky v C# — založil JD_1609
Moderátoři diskuze