Společný násobek n čísel – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Společný násobek n čísel – C / C++ – Fórum – Programujte.comSpolečný násobek n čísel – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Petr
~ Anonymní uživatel
697 příspěvků
11. 11. 2012   #1
-
0
-

   

Ahoj
nemohl by mi někdo poradit jak v C na nejmenší společnej násobek n čísel....čísla jsou zadána v poli, už se to snažím udělat od rána a vůbec mi to nejde.  

Nahlásit jako SPAM
IP: 89.103.102.–
Reklama
Reklama
KIIV+42
God of flame
11. 11. 2012   #2
-
0
-

najdes si nejmensi z toho pole, nasobis od 2 do kdo vi kolika... a testujes zbyle hodnoty jestli jsou vsechny delitelem bezezbytku?

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Grungy0
Super člen
11. 11. 2012   #3
-
0
-

Ja by som asi zvolil radšej to najväčšie číslo z poľa.

A začal by som násobiť 1,2,3 ... ???, pretože to najväčšie číslo môže byť ten najmenší násobok.

Nahlásit jako SPAM
IP: 158.193.83.–
Prvý náznak hlúposti, je pocit geniality.
KIIV+42
God of flame
11. 11. 2012   #4
-
0
-

jo pravda.. bude lepsi vetsi

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
nergal+1
Návštěvník
11. 11. 2012   #5
-
+1
-
Zajímavé

a co tak vyuzit asociativitu operatoru najmensi spolocny nasobok tj

lcm(a,lcm(b,c)) = lcm((lcm(a,b),c)

pricom lcm(a,b) sa spocita zo vztahu a*b=gcd(a,b)*lcm(a,b)

takze spravis najmensi spolocny nasobok prvych 2 a potom vezmes vysledok a spravis lcm s dalsim a zas vezmes vysledok a s dalsim az po n... a mas vysledok

ps: gcd - najmensi spolocny delitel sa pocita euklidovym algorimom ;)

a aby sa nepovedalo ze som lenivy tak kod :)

int gcd(int a,int b) {
	if (a<b)
		return gcd(b,a);
	if (b==0)
		return a;
	a%=b;
	return gcd(b,a);
}

int lcm(int a,int b) {
	return a*b/gcd(a,b);
}

int lcma(int *array,int n) {
	int i,r;

	if (n==1)
		return array[0];

	r = lcm(array[0],array[1]);
	for (i=2;i<n;i++)
		r = lcm(r,array[i]);
	return r;
}
Nahlásit jako SPAM
IP: 85.135.129.–
viem že neviem čo viem
Petr
~ Anonymní uživatel
697 příspěvků
12. 11. 2012   #6
-
0
-

Díky moc za rady všem :) celej program už skoro mám jen tam teď musím nějak nacpat nějakou podmínku aby to nepřesáhlo hodnotu UINT_MAX nenapadá někoho něco nějak mi docházejí nápady.

Nahlásit jako SPAM
IP: 89.103.102.–
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, 146 hostů

Podobná vlákna

Nejmenší společný násobek — založil Noneus

Nejmenší společný násobek — založil Mylhaus

Moderátoři diskuze

 

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