Program na "dělení" – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Program na "dělení" – Pascal – Fórum – Programujte.comProgram na "dělení" – Pascal – Fórum – Programujte.com

 

sh00ter0
Newbie
21. 11. 2010   #1
-
0
-

Zdravim,

mam napsat program na presny deleni celejch cisel...to znamena
na vstupu dostanu cisla N,M
pokud je vysledek celociselnej napr. N=9 M=3 tak mam vypsat v tomhle pripade 3 to je bez problemu
pokud ma vysledek konecnej desetinej rozvoj, tak napr N=184 M=5 tak mam vypsat 36.8
pokud ma vysledek nekonecnej periodickej rozvoj, jako napr. N=1 M=3 tak mam vypsat 0.3 jinej priklad je N=100 M=7 to ma vypsat 14.(285714)

nemate nekdo napad?

me nic moc nenapadlo :/ krom toho prvniho elementarniho pripadu...ale dal ani tuk dik za rady

Nahlásit jako SPAM
IP: 94.113.85.–
sh00ter0
Newbie
21. 11. 2010   #2
-
0
-

Tak po krátkém ale hlubším zamyšlení jsem vyprodukoval tohle...

var n,m,zbytek: integer;


begin

read(n,m);

write (n div m);
zbytek := n mod m;
if zbytek <> 0 then write('.');

while zbytek <> 0 do
begin
if zbytek = (zbytek*10 mod m) then write('(');
write (zbytek*10 div m);
if zbytek = (zbytek*10 mod m) then begin write(')'); break; end;
zbytek := zbytek*10 mod m;
end;

end.


Akorát náš slavný systém mi u 6 testů z 10 hodí Time limit exceeded, nenapadlo by někoho jak to zjednodušit? :)

EDIT: tak problém je při vícecifrové periodě, tak poupravuji dotaz, nenapadá někoho jak to vyřešit? :)

Nahlásit jako SPAM
IP: 94.113.85.–
petr.satka0
Newbie
21. 11. 2010   #3
-
0
-

To sh00ter :
Holt budeš muset omezit počet desetinných míst, tzn. počítat kolik jsi už vypsal a po nějakém počtu to utnout.

Nahlásit jako SPAM
IP: 217.112.175.–
yetty_001
~ Redaktor
+5
Super člen
22. 11. 2010   #4
-
+1
-
Zajímavé
Nahlásit jako SPAM
IP: 94.74.221.–
besters0
Newbie
22. 11. 2010   #5
-
0
-



Ten cyklus nahoře nechápu , zbytečné , dlouhé , pomalé.

nm := n / m

// MAX 10 čísel , z toho 2 desetinné... | číslo max z 10 desetinnými čísly (nm:0:10)
writeln(nm:10:2)


...

Nahlásit jako SPAM
IP: 213.155.231.–
Audiatur et altera pars – Budiž vyslyšena i druhá strana
besters0
Newbie
22. 11. 2010   #6
-
0
-

Jo ukončená a neukončená perioda:

1. Ověřit kolik to má desetinných čísel vůbec pokud má víc než určitý počet , dejme tomu 50
IF nmdes > 50
//VICE neukoncena
ELSE if nmdes =< 50
// ukoncena
pak vypis nm:0:nmdes
ELSE if nmdes = 0
// bez des

2. To první co sem napsal je správně akorát v jiném příkladu , takže se omlouvám.

Nahlásit jako SPAM
IP: 213.155.231.–
Audiatur et altera pars – Budiž vyslyšena i druhá strana
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 2 hosté

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý