IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Člen
Člen
Avatar
Člen:4.10.2014 9:36

Ahojte :)
Potrebujem poradiť... Pracujem na programe, ktorý bude dosádzať do matematického výrazu znamienka + - * /
Zadanie (výraz) musí obsahovať 3 neznáme (3 znamienka)
Napríklad:

2 + 2 + 2 + 2 = 8

Pričom programu budú zadané 4 známe (celé) čísla a bude mu zadaný výsledok. Program bude dosádzať za neznáme znamienka tak, aby sa výsledok rovnal zadanému výsledku (bude skúšať kombinácie). Nevie niekto poradiť, ako dosiahnuť toho, aby program znamienka dosádzal?

Odpovědět
4.10.2014 9:36
...
Avatar
VitekST
Člen
Avatar
VitekST:4.10.2014 10:16

Tak, bude to sice trochu komplexnější, ale vyzkoušej tohle...

int numbers [4] = { 2, 2, 2, 2 };

int result = 8;

int _temp_result = 0;

for(n=0; n<4; n++){
     _temp_result += numbers[n];
}

if(_temp_result == result) cout << "Znamenko je plus!\n";

for(n=0; n<4; n++){
     _temp_result -= numbers[n];
}

if(_temp_result == result) cout << "Znamenko je minus!\n";


for(n=0; n<4; n++){
     _temp_result *= numbers[n];
}

if(_temp_result == result) cout << "Znamenko je krat!\n";

for(n=0; n<4; n++){
     _temp_result /= numbers[n];
}

if(_temp_result == result) cout << "Znamenko je deleno!\n";

Nicméně funguje to jen pokud jsou znaménka stejná. (tzn. ne 8+8-8*8 např.)

PS: V C++ nejsem moc zběhlý, tak jsem někde mohl udělat chybu. Sorry kdyžtak.

Editováno 4.10.2014 10:17
 
Nahoru Odpovědět
4.10.2014 10:16
Avatar
Člen
Člen
Avatar
Odpovídá na VitekST
Člen:4.10.2014 13:10

Ďakujem za snahu, ale bolo by dobré, aby to fungovalo aj vtedy, keď nie sú znamienka rovnaké ;)

Nahoru Odpovědět
4.10.2014 13:10
...
Avatar
MrPabloz
Člen
Avatar
Odpovídá na Člen
MrPabloz:4.10.2014 13:23

Tohle je trochu složitější, vem si, kolik bude asi možností, jak to složit, máš celkem 4 znaménka a máš je dosadit do 3 míst. Pokud se tedy nepletu jsou to variace s opakováním a to máš 4 na 3 a to je 64 možných možností, tím pádem, bud si je můžeš všechny takhle vypsat, nebo na to udělat cyklus, který bude projíždět možnosti. skus si to tady prostudovat, třeba ti to pomůže :) http://forum.matematika.cz/viewtopic.php?…

Nahoru Odpovědět
4.10.2014 13:23
Harmonie těla a duše, to je to, oč se snažím! :)
Avatar
Člen
Člen
Avatar
Odpovídá na MrPabloz
Člen:4.10.2014 13:44

Viem to je kombinatorika :) Vypisovať sa mi to nechce... tak jedine spraviť cyklus :) (btw to forum pomohlo)

Nahoru Odpovědět
4.10.2014 13:44
...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.