Vytváranie čísiel – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Vytváranie čísiel – C / C++ – Fórum – Programujte.comVytváranie čísiel – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
27. 9. 2013   #1
-
0
-

Ahojte, potreboval by som pomôcť pri zostrojení jednej časti zdrojového kódu. Povedzme, že som štandardne načítal čísla 0,1,2,3,4,5 do premenných a,b,c,d,e,f. Potreboval by som, aby program vypísal všetky možné kombinácie čísiel - všetky čísla ktoré sa zo zadaných dajú vytvoriť. Ako to dosiahnuť ?

Nahlásit jako SPAM
IP: 178.143.169.–
KIIV
~ Moderátor
+43
God of flame
27. 9. 2013   #2
-
0
-

prvne ze to nebudes nacitat do nekolika promennych, ale do pole, pak to bude aspon trochu univerzalni...

kombinaci myslis jako ze se zacne pri zadani  1 2 3 a poctu 3 vypisovat  111, 112, 113 ... ? nebo myslis permutaci bez opakovani?

Nahlásit jako SPAM
IP: 94.112.35.–
Program vždy dělá to co naprogramujete, ne to co chcete...
27. 9. 2013   #3
-
0
-

#2 KIIV
Myslím to tak nejak celkovo :D Akákoľvek postupnosť všetkých čísiel čo sú uvedené. Napr. 123450,123405, ... a tak..meniť ich poradie, nie počet.

Nahlásit jako SPAM
IP: 178.143.169.–
vitamin+8
Grafoman
27. 9. 2013   #4
-
0
-

#3 ArcaneBeam13
Ak pouzivas c++ tak je to velmi jednoduche:

#include <iostream>
#include <algorithm>

using namespace std;
int main(){
	int array[] = {2, 1, 3};	
	
	sort(begin(array), end(array));	
	do{
		for(int i : array)cout << i << "\t";	
		cout << '\n';
	}while(next_permutation(begin(array), end(array)));	
	
	return 0;
}
Nahlásit jako SPAM
IP: 95.105.152.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
27. 9. 2013   #5
-
0
-

#4 vitamin
a ako by som ich vložil samostatne do premennej ? napr. a=123 b=132 c=231, ...

Nahlásit jako SPAM
IP: 178.143.169.–
KIIV
~ Moderátor
+43
God of flame
27. 9. 2013   #6
-
0
-

jednoduse:

a=123;

b=132; ... a takhle do zblbnuti...

trochu lepsi reseni je to cpat do pole...

Nahlásit jako SPAM
IP: 94.112.35.–
Program vždy dělá to co naprogramujete, ne to co chcete...
27. 9. 2013   #7
-
0
-

#6 KIIV
A to jest ? Napísali by ste mi kód, prosím ? :)

Nahlásit jako SPAM
IP: 178.143.169.–
KIIV
~ Moderátor
+43
God of flame
27. 9. 2013   #8
-
0
-

pole je misto, kam se vejde vicero hodnot stejneho typu...

mozna by se toho dalo vymyslet vic, kdybys rekl na co to vubec chces... mit pro 100000kombinaci promenne a az ***** by bylo rekneme prasacke (krom toho ze by ses nemusel vejit do pridelene ram)

Nahlásit jako SPAM
IP: 94.112.35.–
Program vždy dělá to co naprogramujete, ne to co chcete...
27. 9. 2013   #9
-
0
-

#8 KIIV
Povedzme, že mám 11 čísiel. To potom ako ? Ako to ukladať do tej premennej ako číslo ? Skúsil som to s kódom od vitamina ale to dáva tie čísla za sebou, nie ako jednu premennú. (napr. 123 nie je 123, ale 1,2,3).

Nahlásit jako SPAM
IP: 178.143.169.–
KIIV
~ Moderátor
+43
God of flame
27. 9. 2013   #10
-
0
-

to bych resil jako retezce... 

jde spis o to, proc chces mit vsechny moznosti ulozene? daji se vypocitat pomerne snadno a rychle .. na kterykoliv pozici

Nahlásit jako SPAM
IP: 94.112.35.–
Program vždy dělá to co naprogramujete, ne to co chcete...
27. 9. 2013   #11
-
0
-

#10 KIIV
Lebo chcem mať program ktorý to urobí za mňa ;) A ako to riešiť s reťazcami ?

Nahlásit jako SPAM
IP: 178.143.169.–
KIIV
~ Moderátor
+43
God of flame
27. 9. 2013   #12
-
0
-

#11 ArcaneBeam13
ale furt si nerekl co s tim.. .to to chces jen nahnat do tech promennejch a pak co?

nebo to chces jen vypsat? to nemusis mit nikde ulozene .. vypocitas jedno a vypises.. vypocitas dalsi a vypises .....

Nahlásit jako SPAM
IP: 94.112.35.–
Program vždy dělá to co naprogramujete, ne to co chcete...
27. 9. 2013   #13
-
0
-

#12 KIIV
Ale mali by byť zoradené od najväčšieho po najmenšie, takže aspoň do pola by som to mohol dať.

Nahlásit jako SPAM
IP: 178.143.169.–
KIIV
~ Moderátor
+43
God of flame
27. 9. 2013   #14
-
0
-

no kdyz bys mel serazenej vstup tak neni problem i bez pole

Nahlásit jako SPAM
IP: 94.112.35.–
Program vždy dělá to co naprogramujete, ne to co chcete...
vitamin+8
Grafoman
27. 9. 2013   #15
-
0
-

#9 ArcaneBeam13 

Ak to budu len permutacie jednocifernych cislic tak pouzi miesto pola std::string a potom skonvertuj string na cislo (napr pomocou atoi, std::stringstream, boost::lexical_cast...)

edit:

Skussem napisat co chces decielit tym programom

Nahlásit jako SPAM
IP: 95.105.152.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
27. 9. 2013   #16
-
0
-

#15 vitamin
Napríklad: Používateľ zadá 4 číslice (napr. 1,2,0,3). Program z nich vytvorí všetky kombinácie čo existujú, zoradí ich od najmenšieho po najväčšie a za sebou vypíše. (int\n,int1\n,...)

Nahlásit jako SPAM
IP: 178.143.169.–
vitamin+8
Grafoman
27. 9. 2013   #17
-
0
-

#16 ArcaneBeam13
Tak ti staci odstranit z toho mojho kodu    << "\t"

Nahlásit jako SPAM
IP: 95.105.152.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
27. 9. 2013   #18
-
0
-

#17 vitamin
Ďakujem, zle som vymazal zátvorku jednu. A čo ak by som chcel iba čísla deliteľné 2mi ? Že by som ignoroval tie, čo nie sú.

Nahlásit jako SPAM
IP: 178.143.169.–
vitamin+8
Grafoman
27. 9. 2013   #19
-
0
-

#18 ArcaneBeam13
cislo bude delitelne dvomi ak bude posledna cislica delitelna dvomi :)

Nahlásit jako SPAM
IP: 95.105.152.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
27. 9. 2013   #20
-
0
-

#19 vitamin
Ale ja myslím v programe :D

Nahlásit jako SPAM
IP: 178.143.169.–
vitamin+8
Grafoman
27. 9. 2013   #21
-
0
-

#20 ArcaneBeam13
Existuje operator modulo ktory ma znak % a vracia zvysok po celociselnom deleni:


1 % 2 == 1
2 % 2 == 0
3 % 2 == 1
4 % 2 == 0
5 % 2 == 1
6 % 2 == 0
//...

vyslednu hodnotu staci testovat cez if

Nahlásit jako SPAM
IP: 95.105.152.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
27. 9. 2013   #22
-
0
-

#21 vitamin
Aj o module viem, ale ako ho zapracovať do kódu ? (inak, základné aritmetické operácie poznám :P)

Nahlásit jako SPAM
IP: 178.143.169.–
vitamin+8
Grafoman
27. 9. 2013   #23
-
0
-

#22 ArcaneBeam13 

if(pole[2] % 2)/*neparne*/;
else /*parne*/;
Nahlásit jako SPAM
IP: 95.105.152.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
27. 9. 2013   #24
-
0
-

#23 vitamin
ale ja myslím do tohto: 

do{
		for(int i : array)cout << i;	
		cout << '\n';
	}while(next_permutation(begin(array), end(array)));	
Nahlásit jako SPAM
IP: 178.143.169.–
vitamin+8
Grafoman
27. 9. 2013   #25
-
0
-

#24 ArcaneBeam13
Skus techniku: pokus–omyl :)

Nahlásit jako SPAM
IP: 95.105.152.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
27. 9. 2013   #26
-
0
-

   

Připojen obrázek.

Ale keď to aj zmením niektoré čísla mám vo výstupe duplicitne. Čo vtedy ?

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

Podobná vlákna

Vytvaranie textakov — založil lolek

Spočítanie čísiel — založil street punk

Hadanie cisiel — založil Iva

Spočítanie čísiel — založil Robo

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ý