# Problem bei einer Übung aus der FH



## arne1234 (8. Nov 2014)

Hi,
Und zwar habe ich folgende fiese Aufgabenstellung .... Ein Code aus 3 Ziffern soll eingegeben werden(denke einzeln also 1 Ziffer pro Eingabe)  , und entschlüsselt ausgegeben werden , nur die 1. und 3. Ziffer ändern sich wie folgt: 

aus ...wird
0=9
1=8
2=7
3=6
4=5
5=4
6=3
7=2
8=1
9=0

ich kann eigentlich nur normale Rechenoperation , Variablen , sysoutprint,msgbox,für Ausgabe und Eingabe SysReadln das wars (fang grad an )


( dürfen keine Strings, keine if-anweisung, Arrays verwenden ham wir noch nicht gehabt ) es muss irgendwie so gehen hab mir wirklich den kopf zerbrochen ich raff die Aufgabe nicht ..google alles bemüht...mit ner if Anweisung klar ...aber ohne irgendwie mit modulo oder dreieckstausch (mit hilfsvariable) ???keine Ahnung!!!....

wäre für jeden denkanstoss oder Hilfe dankbar muss das bis Montag irgendwie schaffen hab den ganzen übungsbogen geschafft alle aufgaben 2 punkte...da ich krank war sind 2 punkte zu verschenken schmerzlich...sind keine Hausaufgaben ...ist ne Übung möchte nicht dumm da stehen und es aufarbeiten.. doch die letzte  blöde Aufgabe hängt wär schön wenn ichs irgendwie mit euerer Hilfe schaffe  ....2 variablen vertauschen krieg ich hin mit hilfsvariable aber 9 verschiedene werte auf bestimmte zahlen ??? omg

Hoffe es ist nicht zu nervig für euch....


----------



## Thallius (8. Nov 2014)

Wie wäre es mit simpler Mathemathik? 

ergebnis=9-zahl;

Gruß

Claus


----------



## arne1234 (8. Nov 2014)

Vielen vielen Dank..... ja klar , ouh man bin ich blöd...


----------



## arne1234 (8. Nov 2014)

jetz hab ichs nächste problem wie tu ich bis zu 3 stellige zahlen einlesen und dann in einzelne variablen zerlegen (incl. ergänzung führender Null) Mein Problem wenn ich......... int a = InputBox.readint () nehme was die einzige eingabe ist die wir benutzen wie krieg ich aus ner 3 stelligen zahl.... 3 einzelne variablen?


----------



## Flown (8. Nov 2014)

Ganz einfach:


```
public class Test {
  public static void main(String[] args) {
    int i = 123;
    while (i > 0) {
      System.out.println(i - i / 10 * 10);
      i /= 10;
    }
  }
}
```


----------



## arne1234 (8. Nov 2014)

while schleife und strings allgemein sind noch nicht behandelt worden darf ich somit nicht nutzen....


----------



## Flown (8. Nov 2014)

Prinzip bleibt das gleiche. Mit der Formel oben i - i / 10 * 10 kannst du die einerstelle herausfinden!

Bsp.:

i = 321
einer = i - i/10 *10 (= 321 - 32 * 10 <=> 321-320 <=> 1)
i = i /10 (= 321 / 10 <=> 32)
usw.


----------



## arne1234 (8. Nov 2014)

gerafft danke ! 

mega nett.. stand irgendwie aufn schlauch ganze woche schon am nachhohlen gewesen war bissl viel für mich,

P.S. macht er dann die führende 0 auch mit?


----------



## stg (8. Nov 2014)

arne1234 hat gesagt.:


> P.S. macht er dann die führende 0 auch mit?



Probier's doch einfach mal aus?!


----------



## arne1234 (8. Nov 2014)

Hi ,

alles top funktioniert 3 kleine fragen hätt ich noch wenns nich schlimm ist....

1. math.round.... darf ich nich nutzen wie runde ich ohne die funktion,

2. math.pow.... darf ich nicht nutzen wie schreibe ich double Math.pow(1 + p / 100,n); ohne die math.pow funktion
habe      double K = A * (1+p/100)^n;  versucht geht aber nicht weil wohl "^" bei double nicht erlaubt ist..... :shock:


3. math.random.... für ne zufallszahl auch nicht wie erstelle ich dann eine zufallszahl zwischen einem bestimmten int wert z.B 1-10


Gruß Arne


----------



## Flown (8. Nov 2014)

Für deine 1. Frage (die Antwort steht bereits oben!). Du castest ein double auf ein int, somit verlierst du alle Nachkommastellen und kannst somit diese Zahl von der ursprünglichen abziehen. Wenn sie dann größer als 0.5 ist dann den ursprünglichen Wert auf int casten und +1 rechnen. Falls nicht nur auf int casten.

2. Frage: Mit einer Schleife. Sooft durchlaufen bis die gewünschte Potenz erreicht ist (weil n³ = n*n*n -> machts Klick?)

3. Frage: Glaube ich nicht, dass ihr Zufallszahlen selbst erstellen müsst. Aber wenn es wirklich sein muss, dann benutz doch einen Zeitstempel (System.nanoTime() % 10 + 1).


----------



## arne1234 (8. Nov 2014)

danke für die schnelle antwort....

1. verstanden
2. wird problematisch ist ja ein (term) den ich hoch "n" nehmen soll wenn n nicht variabel wäre ok klar ... aber so ...kp
3. dann lass ichs mit math.random drinn...system.nanoTime hatten wir auch noch nicht bleibt sich also gleich

Gruß Arne


----------



## Flown (8. Nov 2014)

1 + p/100 ist eine Zahl! Die wird vorher berechnet und dann hoch n gerechnet!


----------



## arne1234 (8. Nov 2014)

ja und wie regel ich das ihm zu sagen das er n mal den term mit sich selbst nehmen soll???

zahl aus dem term^n geht ja nicht


----------



## Saheeda (8. Nov 2014)

Du machst eine Schleife, die n mal durchlaufen wird.


----------



## arne1234 (8. Nov 2014)

ich darf keine if oder while geschichten benutzen^^


----------



## Flown (9. Nov 2014)

Die Frage sollte dann lauten, was darfst du verwenden?


----------



## arne1234 (9. Nov 2014)

also stand nix von if anweisungen , keine math.pow, math.round,math.random,..... alles nur durch einfache rechenoperationen........ aber ich las die math funktionen wohl drinn anders weiss ichs auch nich mal sehn wieviel punkte ich erreich.... nach abgabe poste ich am montag die programme mal rein... total low ich weiss aber irgendwann ist immer der anfang...

vielen dank trozdem für eure nette unterstüzung!

gruß arne


----------



## Flown (9. Nov 2014)

Wenn du keine Schleife verwenden darfst, dann lös es doch mit Rekursion!


----------

