Zahlenpyramide

CDW

0
Mitarbeiter
Eingereicht von Ook!
gegeben sei eine Pyramide:
Code:
          [ 151]
          [  ][  ]
        [40][  ][  ]
      [  ][  ][  ][  ]
    [ X][11][ Y][ 4][ Z]
die leeren Kästchen sind Platzhalter, der Wert eines Kästchens ergibt sich aus der Summe der beiden drunterliegenden. z.B
Code:
  [40]
[  ][  ]
Für die letzte Zeile gilt:
X,Y,Z>=0, Y = X + Z.

Schreibe ein Programm, welches das Puzzle löst und gültige Werte für X,Y,Z findet.
 
Mhm.. Gleichungssystem aufstellen, lösen, fertig.
/edit: Wie zum Henker setzt man hier ein HIDE?
/edit2: Gefunden :)
Code:
x = 5, y = 13, z = 8,
falls ich mich zu dieser späten stunde nicht verrechnet hab
 
Mein Lösungsvorschlag

C++ Code:

Code:
/*          [ 151]                // 151
          [  ][  ]                // a, b
        [40][  ][  ]            // v(40), c, d
      [  ][  ][  ][  ]            // e, f, g, h
    [ X][11][ Y][ 4][ Z]        // x, 11, y, 4, z
*/
#include <iostream>
#include <ctime>
#include <conio.h>
using namespace std;

int main()
{
    srand(time(NULL));
    short a = 0, b = 0, c = 0, d = 0, e = 0, f = 0, g = 0, h = 0, x = 0, y = 0, z = 0, v ;
    bool bedingungz = false, bedingungy = false, ende = false;
    while(ende==false)
    {
        v = 0;
        // e und f berechnen
        while(v != 40)
        {
            x = (rand() % 20);
            y = (rand() % 20);
            e = x + 11;
            f = y + 11;
            v = e + f;
        }
        // x und y berechnen
        x = e - 11;
        y = f - 11;
        // g berechnen
        g = y + 4;
        // c berechnen
        c = f + g;
        // a berechnen
        a = 40 + c;
        // b berechnen
        b = 151 - a;
        // d berechnen
        d = b - c;
        // h berechnen
        h = d - g;
        // z berechnen
        if(z >= 0)
            bedingungz = true;

        // y prüfen
        if(y == (x + z))
            bedingungy = true;

        if(bedingungz == true && bedingungy == true)
            ende = true;
    }
    // Ausgabe:
    cout << "Ergebnis: " << endl;
    cout << "       [151]" << endl;
    cout << "   [" << a << "] [" << b << "]" << endl;        
    cout << "  [40][" << c << "][" << d << "]" << endl;
    cout << " [" << e << "][" << f << "][" << g << "][" << h << "]" << endl;
    cout << "[" << x << "][11][" << y << "][4][" << z << "]" << endl << endl;
    cout << "Druecken Sie eine beliebige Taste um das Programm zu beenden" << endl;
    getch();
    return 0;
}

Ergebnis:
-151-
-73--78-
-40--33--45-
-20--20--13--32
-9--11--9--4--0

also ist x = 9, y = 9, z = 0,

also das mit dem z ist irgendwie merkwürdig aber teil der aufgabe war ja:
X,Y,Z>=0, Y = X + Z

also passt es doch oder...
 
Zurück
Oben