Portál AbcLinuxu, 2. května 2025 05:08

Eggs

6.3.2010 20:11 | Přečteno: 1201× | Ostatní | poslední úprava: 6.3.2010 20:21

Zadání je jednoduché: za 100 korun koupit tři druhy vajec, za 50 haléřů, za 3 koruny a za 10 korun, od každého druhu alespoň jeden kus a celkově 100 kusů.

Řešit to lze také jednoduše:

#include <stdio.h>
/*
 * eggs.c
 *
 * Máme za 100 Kč koupit tři druhy vajec:
 *      1. druh za 0.5 Kč
 *      2. druh za 3.0 Kč
 *      3. druh za 10.0 Kč
 * od každého druhu alespoň jeden kus a celkově 100 kusů.
 * Kolik bude kusů jakého druhu musíme koupit?
 *
 */

int main()
{
    int iEggs1Count = 0, iEggs2Count = 0, iEggs3Count = 0;
    const double dEgg1Price = 0.5, dEgg2Price = 3.0, dEgg3Price = 10.0;
    const int iEggsTotalCount = 100;
    const double dEggsTotalPrice = 100.0;
    
    for (iEggs1Count = 1; iEggs1Count < (iEggsTotalCount - 1); iEggs1Count++)
    {
        for (iEggs2Count = 1; iEggs2Count < (iEggsTotalCount - iEggs1Count); iEggs2Count++)
        {
            iEggs3Count = iEggsTotalCount - iEggs1Count - iEggs2Count;
            
            double dPrice = (iEggs1Count * dEgg1Price) + (iEggs2Count * dEgg2Price) + (iEggs3Count * dEgg3Price);
            
            if (!(dPrice > dEggsTotalPrice) && !(dPrice < dEggsTotalPrice))
            {
                printf("%3d ks za  0.50 Kč = %6.2f Kč\n", iEggs1Count, (iEggs1Count * dEgg1Price));
                printf("%3d ks za  3.00 Kč = %6.2f Kč\n", iEggs2Count, (iEggs2Count * dEgg2Price));
                printf("%3d ks za 10.00 Kč = %6.2f Kč\n", iEggs3Count, (iEggs3Count * dEgg3Price));
                printf("------               ---------\n");
                printf("%3d ks               %6.2f Kč\n", (iEggs1Count + iEggs2Count + iEggs3Count), dPrice);
                return 0;
            }
        }
    }
    return 1;
}

Ale jde to nějak rozumě odvodit? Moc jsem nad tím nedumal, protože řešení znám...

       

Hodnocení: 67 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

6.3.2010 20:29 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Eggs
Odpovědět | Sbalit | Link | Blokovat | Admin
Je to soustava dvou rovnic o třech neznámých (x+y+z=100; 0,5x+3y+10z=100), hledáte její celočíselné řešení s kladnými kořeny. Dá se upravit na jednu rovnici o dvou neznámých 5y × 19z = 100 (y je počet vajíček za 3 Kč, z počet vajíček za 10 Kč), z té už je vidět na první pohled (nebo zkusíte dosazování, 1 <= z <= 5 je 5 dosazení), že y = 1 (y je počet vajíček za 3 Kč) a z = 5 (z je počet vajíček za 10 Kč), počet vajíček za 50 hal se dopočítá z některé z obou rovnic (94).
vogo avatar 6.3.2010 20:38 vogo | skóre: 34 | blog: "Skládat papír"
Rozbalit Rozbalit vše Re: Eggs
k soustavě rovnic jsem se dostal, ale nechtělo se mi dosazovat... Kdybych si to líp upravil :) rovnice jsem si vždycky vyjadřoval s x (vejce za 50 haléřů), achjo.
Nejsem paranoidní, ale to ještě neznamená, že po mě nejdou.
6.3.2010 20:45 Stevko | skóre: 3 | Praha
Rozbalit Rozbalit vše Re: Eggs
V tomto prípade to ide celkom dobre. Ale niečo mi hovorí, že to nemusí ísť pri všetkých rovniciach tak jednoducho.
Príspevok nemá byť ukončený spojením „môj názor“.
6.3.2010 22:00 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Eggs
Kdyby to nešlo relativně snadno, nebude se to dávat jako hádanka :-)
7.3.2010 14:14 pc2005 | skóre: 38 | blog: GardenOfEdenConfiguration | liberec
Rozbalit Rozbalit vše Re: Eggs
No je to diofantická rovnice. Problém je potom v tom, že x, y i z musí být z celých kladných čísel.
=^..^= AmigaPower® avatar 7.3.2010 14:46 =^..^= AmigaPower® | skóre: 30 | blog: BLB | Praha
Rozbalit Rozbalit vše Re: Eggs
...a když si na konec dodám nulu a z výsledku jí pak škrtnu? (omluvte mně jestli je to blbost, nejsem žádnej matematik, jdu na to se selskym rozumem)
=^..^= AmigaPower® avatar 7.3.2010 21:18 =^..^= AmigaPower® | skóre: 30 | blog: BLB | Praha
Rozbalit Rozbalit vše Re: Eggs
Tak mi to nedalo, vysypal sem prasátko z grošema, zabral plochu 2x3 metry v pokoji a když už jsem to skoro měl, vyběh ten kokot Greebo a je to celý v prdeli... :-(
=^..^= AmigaPower® avatar 6.3.2010 22:45 =^..^= AmigaPower® | skóre: 30 | blog: BLB | Praha
Rozbalit Rozbalit vše Re: Eggs
Odpovědět | Sbalit | Link | Blokovat | Admin
Dobrej blog, inspiroval mně dát si 6 vajíček na chlebu s máslem, hodně pepře a soli, s troškou oregano... ;-)
I♥DRX * www.KERNELULTRAS.org
7.3.2010 11:42 xurfa
Rozbalit Rozbalit vše Re: Eggs
tak to příjemnej cholesterol! :-D
=^..^= AmigaPower® avatar 7.3.2010 12:52 =^..^= AmigaPower® | skóre: 30 | blog: BLB | Praha
Rozbalit Rozbalit vše Re: Eggs
dík ;-)
Václav 8.3.2010 08:30 Václav "Darm" Novák | skóre: 26 | blog: Darmovy_kecy | Bechyně / Praha
Rozbalit Rozbalit vše Re: Eggs
Jak jsi tam mohl nedat rajče! Barbare :D Sakra, ale taky bych si dal. Dík za inspiraci na dnešní večeři.
Cross my heart and hope to fly, stick a cupcake in my eye!
=^..^= AmigaPower® avatar 8.3.2010 10:05 =^..^= AmigaPower® | skóre: 30 | blog: BLB | Praha
Rozbalit Rozbalit vše Re: Eggs
Kde mam v půl jedenáctý v noci vzít rajče? To je jasný, že kdybych ho měl, tak si ho tam dám...

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.