Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem 7?!

Dobrý den, potřebuji poradit jak mám zapsat "je-li dvojnásobek počtu stovek zvětšený o poslední dvojčíslí dělitelný 7" , popřípadným poradcům velice děkuji.

Předmět Autor Datum
Ved si to uz zapsal. "je-li dvojnásobek počtu stovek zvětšený o poslední dvojčíslí dělitelný 7". Pot…
MM.. 21.10.2010 16:21
MM..
potřebuji napsat konkrétní číslo :/
MarkKinc 21.10.2010 16:22
MarkKinc
To není číslo.
karel 21.10.2010 16:25
karel
Tohle fakt nedokážeš? Najdi si na googlu, jak zjistit dělitelnost sedmi. Ale mám dneska dobrou nálad…
marekdrtic 21.10.2010 18:31
marekdrtic
:-?
Prasak 21.10.2010 18:46
Prasak
Tys to nepochopil. Chtěl napsat jedno číslo :) Konkrétní.
karel 21.10.2010 18:48
karel
700 8-)
marekdrtic 21.10.2010 18:49
marekdrtic
[1276914552599_f.jpg]
Prasak 21.10.2010 18:51
Prasak
Flek! [http://pc.poradna.net/file/view/4256-forum95-gif]
karel 21.10.2010 18:59
karel
Toto jsem nějak nepobral, co jsi tím chtěl říct.
marekdrtic 21.10.2010 19:01
marekdrtic
Studuj dějiny.
karel 21.10.2010 19:03
karel
TJJNBV :-D poslední
Prasak 21.10.2010 19:19
Prasak

Tohle fakt nedokážeš? Najdi si na googlu, jak zjistit dělitelnost sedmi. Ale mám dneska dobrou náladu, takže ti s tím pomůžu.

Máme číslo 100X+10Y+Z, kde Y, Z € {0;1;2...9} a X € {1;2....9}. Poté musí platit, že 7 | 2X+10Y+Z (př: 3 | 6 = 3 dělí šestku). Takové číslo může mít maximální hodnotu 18 + 90 + 9 = 117. To znamená, že vlastně řešíš tuto parametrickou rovnici:

2X+10Y+Z = nějaké číslo ABC nebo BC nebo C

To znamená, že budeš mít X možností. A z těch vybereš taková, která vyhovují tomu, že je jejich podíl 7 bez zbytku. To jsou řešení této úlohy.

Algoritmus v C by pak vypadal nějak takto (sorry za chyby v syntaxi a dělám to maximálně polopaticky, určitě by to šlo i nějak sotisfikovaněji)

for(stovky=1;stovky<10;stovky++)
{
   for(desitky=0;desitky<10;desitky++)
   {
      for(jednotky=0;jednotky<10;jednotky++)
      {
        cislo = stovky*2+desitky*10+jednotky;
        if(cislo%7 == 0)
        {
         print stovky*100+desitky*10+jednotky+'\n';
        }
      }
   }
}

A tohle ti vypíše všechna ta čísla. Pakliže by šlo o čísla v řádech miliard, bylo by nutný udělat to nějak jednodušeji, ale počítač je dost rychlej na to, aby prozkoušel těch 999 variant během pár milisekund :puff:

NEBO jde i druhé, rychlejší řešení. Stačí se zamyslet nad předpisem 7 | 2X+10Y+Z. Kdy bude splněn? Pakliže bude Y a Z 0 a X bude 7, budou splněny obě podmínky. Tudíž jedno řešení je číslo 700. Teď ještě přemýšlím nad tím, jestli můžou být počty stovek nulové. Pakliže ano, bude řešením úlohy každé číslo YZ, které je dělitelné sedmi, tudíž:

14,21,28,35 ...... až do 98

Pakliže ne, šlo by to už tím algoritmem nebo možná takto:

X je nějaké číslo 1 - 10. V tom případě budou řešením všechna tato čísla:

Pro X=1:
YZ = 12,19,26,33 .... až do 96

Pro X=2:
YZ = 10,17,24,31 .... až do 94

a tak dále.

A přepsáno do matematické řeči:

Řešíme parametrickou rovnici s parametrem X, který může nabývat hodnot v intervalu <0,9> průnik N (prostě čísla 0,1,2,3,4,5,6,7,8,9) a parametrem třeba U, který může nabývat hodnot všech přirozených čísel. A poté už pouze řešíme tuto soustavu rovnic:

P = 7U-2N
P < 100
P >= 10
a P samozřejmě musí být také přirozené číslo.

a poté číslo P rozložíme na cifry, což je naše Y a Z

Zpět do poradny Odpovědět na původní otázku Nahoru