[ moja-sesija @ 10.11.2009. 22:22 ] @
| kako da dobijem sve kombinacije npr. za kladionicu, da mi scripta ispise za kladionicu za parove, naprimjer:
ukoliko se radi o 2 kombinacije tj: scripta bi mi trebala da ispise sljedece
1 1
1 2
2 1
2 2
EEE kako da napravim scriptu da mi ovo isto moze ispisati za vise kombinacija, svi prijedlozi su dobrodosli, hvala unaprijed. |
[ Mihajlo Cvetanović @ 10.11.2009. 22:47 ] @
Ne razumem, šta su ulazni podaci, šta su izlazni podaci, šta želiš da program uradi?
[ moja-sesija @ 10.11.2009. 23:27 ] @
n.p.r za 2 para na kladionici, pretpostavljam da nema nerjeseno, znaci 1 ili 2, da mi ispise sve kombinacije,
1: 1 1
2: 1 2
3: 2 1
4: 2 2
ako unesem 3 para da mi ispise ovako:
1: 1 1 1
2: 1 1 2
3: 1 2 2
4: 1 2 1
......
......
i . t. d
Samo da se ne ponavljaju, znaci da ja kao ulaznu vrjednost dam broj npr 3, i da mi da sve ispisane kombinacije, nikako ne mogu da skopcam kako bi ovo mogo realizovat.
[ w3bl0rd @ 11.11.2009. 06:50 ] @
za ovo bi najjednostavnije bilo da radiš s binarnim brojevima ak su 2 mogućnosti i samo uvečavaš za 1 dok ne dođeš do željenog broja...
001
010
011
100
101
110
111
kasnije samo 0 smatraš kao 1 a 1 kao dva...
[ Mihajlo Cvetanović @ 11.11.2009. 07:47 ] @
W3bl0rd je u pravu. Imaš petlju u kojoj brojač ide od 0 do 2^n, gde je n ulazni podatak. U telu petlje razlažeš ovaj brojač na binarne sastojke, tako što u novoj petlji šiftuješ taj broj na desno (broj >>= 1) i to n puta, i proveravaš cifru jedinice (broj % 2). Ako je na tom mestu 0 ti ispišeš keca, ako je na tom mestu 1 ti ispišeš dvojku.
[ Nedeljko @ 12.11.2009. 08:57 ] @
Pardon, ide do 2
n-1.
Code:
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
int n;
cout << "Unesi broj " << endl;
cin >> n;
int p = 1 << n;
for (int i=0; i<p; ++i) {
for (int j=n-1; j>=0; --j)
cout << (i & (1 << j) ? 2 : 1);
cout << endl;
}
return EXIT_SUCCESS;
}
[ Mihajlo Cvetanović @ 12.11.2009. 09:40 ] @
Slatko i elegantno
Copyright (C) 2001-2024 by www.elitesecurity.org. All rights reserved.