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

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

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny