Hallo,
Um es mal direkt zu sagen: Ich bin neu in diesem Forum. Ich habe mir eigentlich die Regeln durchgelesen, allerdings kann es sein, dass ich hier in ner falschen Rubrik poste.
Naja wie auch immer.
Mein Bruder hat in der Schule das Zahlenspiel bekommen. Dieses geht so. Man hat 2 unbekannte Zahlen, die, wenn man die Summe, die Differenz, das Produkt und den Quotienten addiert, eine bestimmte Summe ergeben müssen, die vorgegeben ist. Ich mach das nochmal mit buchstaben damits leichter ist. Die beiden unbekannten Zahlen heißen a und b. (a+b)+(a-b)+(a*b)+(a/b)=1000. Nun dachte ich mir entwickel ich ein Java-Programm welches a und b errechnen kann. Allerdings stoße ich auf das Problem, dass bei mir nie die Zahlen gefunden wird...
[JAVA=1]
public class Rechner
{
public static void main(String[] args)
{
double zahlsum = 4;
//double zahlsum = InOut.readDouble( "Geben Sie bitte die erwünschte Summe ein und bestätigen Sie mit Enter: " );
double zahla = 0,
zahlb = 0;
boolean arbeit = true;
kontrollieren( zahla, zahlb, zahlsum );
while( kontrollieren( zahla, zahlb, zahlsum ) != true && arbeit == true )
{
while( zahla < zahlsum && kontrollieren( zahla, zahlb, zahlsum ) != true )
{
zahla = zahla + 0.1;
while( zahlb < zahlsum && kontrollieren( zahla, zahlb, zahlsum ) != true )
{
zahlb = zahlb + 0.1;
kontrollieren( zahla, zahlb, zahlsum );
}
zahlb = 0;
}
arbeit = false;
}
if( kontrollieren( zahla, zahlb, zahlsum ) == true )
{
System.out.println( "Die Zahlen lauten: " + zahla + " und " + zahlb + "." );
}
else
{
System.out.println( "Leider konnte keine der Zahlen ermittelt werden." );
}
}
public static boolean kontrollieren( double zahla, double zahlb, double zahlsum )
{
double plus = zahla + zahlb;
double minus = zahla - zahlb;
double mal = zahla * zahlb;
double geteilt = zahla / zahlb;
double ges = plus + minus + mal + geteilt;
if( ges == zahlsum )
{
return true;
}
else
{
return false;
}
}
}
[/code]
Die Summe soll frei wählbar sein. Ich probier es hier immer mit der Summe 4, da müssten a und b jeweils 1 sein. Ich habe mir gedacht ich probier alle Kombinationen von a und b aus solange sie kleiner als die Summe sind. Die Schritte könnte ich auch noch verkleinern, sobald es erstmal funktioniert ...
Ich denke das schildert mein Problem ganz gut und hoffe mir kann jemand helfen.
Außerdem bin ich Anfänger, also bitte nicht schimpfen, wenn ich was offensichtliches übersehen habe oder meine Programme nicht sonderlich perfekt aufschreibe.
Ansonsten noch eine gute Nacht und danke fürs lesen!
lg
Runa
Um es mal direkt zu sagen: Ich bin neu in diesem Forum. Ich habe mir eigentlich die Regeln durchgelesen, allerdings kann es sein, dass ich hier in ner falschen Rubrik poste.
Naja wie auch immer.
Mein Bruder hat in der Schule das Zahlenspiel bekommen. Dieses geht so. Man hat 2 unbekannte Zahlen, die, wenn man die Summe, die Differenz, das Produkt und den Quotienten addiert, eine bestimmte Summe ergeben müssen, die vorgegeben ist. Ich mach das nochmal mit buchstaben damits leichter ist. Die beiden unbekannten Zahlen heißen a und b. (a+b)+(a-b)+(a*b)+(a/b)=1000. Nun dachte ich mir entwickel ich ein Java-Programm welches a und b errechnen kann. Allerdings stoße ich auf das Problem, dass bei mir nie die Zahlen gefunden wird...
[JAVA=1]
public class Rechner
{
public static void main(String[] args)
{
double zahlsum = 4;
//double zahlsum = InOut.readDouble( "Geben Sie bitte die erwünschte Summe ein und bestätigen Sie mit Enter: " );
double zahla = 0,
zahlb = 0;
boolean arbeit = true;
kontrollieren( zahla, zahlb, zahlsum );
while( kontrollieren( zahla, zahlb, zahlsum ) != true && arbeit == true )
{
while( zahla < zahlsum && kontrollieren( zahla, zahlb, zahlsum ) != true )
{
zahla = zahla + 0.1;
while( zahlb < zahlsum && kontrollieren( zahla, zahlb, zahlsum ) != true )
{
zahlb = zahlb + 0.1;
kontrollieren( zahla, zahlb, zahlsum );
}
zahlb = 0;
}
arbeit = false;
}
if( kontrollieren( zahla, zahlb, zahlsum ) == true )
{
System.out.println( "Die Zahlen lauten: " + zahla + " und " + zahlb + "." );
}
else
{
System.out.println( "Leider konnte keine der Zahlen ermittelt werden." );
}
}
public static boolean kontrollieren( double zahla, double zahlb, double zahlsum )
{
double plus = zahla + zahlb;
double minus = zahla - zahlb;
double mal = zahla * zahlb;
double geteilt = zahla / zahlb;
double ges = plus + minus + mal + geteilt;
if( ges == zahlsum )
{
return true;
}
else
{
return false;
}
}
}
[/code]
Die Summe soll frei wählbar sein. Ich probier es hier immer mit der Summe 4, da müssten a und b jeweils 1 sein. Ich habe mir gedacht ich probier alle Kombinationen von a und b aus solange sie kleiner als die Summe sind. Die Schritte könnte ich auch noch verkleinern, sobald es erstmal funktioniert ...
Ich denke das schildert mein Problem ganz gut und hoffe mir kann jemand helfen.
Außerdem bin ich Anfänger, also bitte nicht schimpfen, wenn ich was offensichtliches übersehen habe oder meine Programme nicht sonderlich perfekt aufschreibe.
Ansonsten noch eine gute Nacht und danke fürs lesen!
lg
Runa