Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Dostal jsem takové to zadání úkolu. Děkuju všem za rady:
Mezi přirozenými čísly existují čtyři čísla, která se rovnají součtu třetích mocnin svých cifer.
První z nich je 153 (153 = 1na třetí + 5na třetí + 3na třetí ).
Sestavte program pro nalezení zbylých tří čísel. Hledané čísla jsou menší než 410.
Offline
↑ Stýv:
on to asi špatně spočítal mělo by to být..:D
má to být 153=1+125+27
Offline
↑ TomDlask: Řeknu to tak, jsem naprostý nováček, zatím neumím skoro nic v pascalu. Jen máme **** učitele, který nám tohle zadal a sám ani neví jak se to dělá.
Takže závěr: nedokážu to.
Offline
↑ TomDlask: Nepíš v hádankách. Rád bych to pochopil, ale to pro mě asik nepřipadá v úvahu. Byl by jsi tak hodný a udělal mi tento příklad v pascalu?
Offline
↑ janca361: Děkuju, rád bych tomu rozuměl a něco udělal, ale nikdy jsem tenhle typ neviděl netuším co tam patří. :(
Offline
↑ Tom959:
A aby si neřekl, že jen dělám chytrou a nic k tématu nenapíšu...
Vzpomeň si na matematiku:
Máš číslo xyz, jedná se o trojmístné číslo, kde každou jeho cifru zastupuje písmeno x,y a z
Ty víš, že všechny čísla jsou menší než 410.
Číslo tedy můžeš rozložit také:
xyz div 100 =
xyz mod 100 = yz
yz div 10 =
yz mod 10 =
Je to podobný jako píše TomDlask, ale pokud se ti vybaví ta souvislost s matematikou....
Offline
↑ Tom959:
Dejme tomu, že umíš jen celočíselně dělit a určit zbytek po celočíselném dělení. Jak bys z nějakého čísla pomocí těchto dvou operací určil jeho cifry?
(To nesouvisí nijak s pascalem, než se budeš snažit napsat program v konkrétním programovacím jazyce, měl bys mít jasno v tom, jak vůbec vypadá algoritmus, který chceš napsat.)
Offline
↑ Tom959: Chtěl jsem, aby jsi tomu rozumněl. Když ti tu vyplodím kód, tak z toho nikdo nic nebude mít.
Takže ten postup na rozporcování cifer v pseudokódu:
1) Máme číslo v proměnné n
2) Dokud bude n rozdílné od nuly, tak budeme dělat:
2a) a=n mod 10;
2b) n=n div 10;
Je vidět, že v proměnné a se vystřídají všechny cifry? Jestliže ano, tak můžeme jít dál.
Edit: psal jsem to dlouho, tak to tu máme víckrát
Offline
↑ janca361: mod je zbytek po celočíselném podílu a div je celočíselný podíl.
Ano tohle chápu.
Offline
↑ Tom959: Dokážeš tudíž napsat program, co ti bude po jedné cifře vypisovat číslo... Teď následuje souhrn otázek:
Dokážeš napsat program, který vypočítá ciferný součet?
Dokážeš napsat program, který vypočítá součet třetích mocnin cifer?
Offline
Pro TomBlask : ne nedokážu napsat nic. říkal jsem, že nemám vůbec základy
program cifry;
var j,d,s,i:integer;
begin
writeln('Zadej cislo');
readln(j,d,s);
for i=1 to 410 do
readln;
end.
Omluvte mojí hloupost. :-( Ale určitě je to všechno blbě a netuším jak dál
Offline
Z tvého příspěvku "Ano tohle chápu." jsem vydedukoval, že ten program napsat umíš, takže znovu:
Předvedu ti, jak získat ciferný součet nějakého čísla n na vstupu:
1) Máme číslo v proměnné n a v proměnné součet je 0
2) Dokud bude n rozdílné od nuly, tak budeme dělat:
2a) a=n mod 10;
2b) součet=součet+a;
2b) n=n div 10;
3) Po ukončení cyklu máme v proměnné součet ciferný součet čísla n.
Rozumíš tomuto postupu získání ciferného součtu? Jestliže ne, napiš kterému kroku nerozumíš
Offline
↑ TomDlask:Když mi to napíšeš takhle obecně... Bylo by možné napsat tohle na konkrétním příkladu?
Offline