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ť ?
Fórum › C / C++
Vytváranie čísiel
Nahlásit jako SPAM
IP: 178.143.169.–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.–#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.–ZMeson: "That's the C god. C++ has a new god. "
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.–#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.–#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.–ZMeson: "That's the C god. C++ has a new god. "
#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.–ZMeson: "That's the C god. C++ has a new god. "
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
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa































Uživatelé prohlížející si toto vlákno
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
Vytváranie a zatváranie okien — založil Pig
Moderátoři diskuze
TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Newbie

God of flame
Grafoman


