Wie kann ich in Brainfuck ne Variable durch 2 teilen?
-
Wie kann ich in Brainfuck ne Variable durch 2 teilen?
-
RFTM!
-
Hi,
kann dir nicht genau sagen, wie das geht.
Hier aber ein Link, in dem so einiges (auch dividieren) erklaert wird
http://www.tiamatix.net/brainfuck/Brainfuck.txt
[/nachtrag]
mfg
v R[ Dieser Beitrag wurde am 20.10.2002 um 01:27 Uhr von virtuell Realisticer editiert. ]
-
Hmm, mit 5 multiplizieren (5 mal addieren) und die letzte Stelle auf 0 bringen.
-
Jo. Feine Links. Thx.
Original erstellt von Doktor Prokt:
Hmm, mit 5 multiplizieren (5 mal addieren) und die letzte Stelle auf 0 bringen.Netter Versuch. Aber durch 10 teilen zu müssen, um die letzte stelle auf 0 zu bringen, vereinfacht das Problem nur unwesentlich.
-
Original erstellt von volkard:
**Jo. Feine Links. Thx.[quote]Original erstellt von Doktor Prokt:
[qb]Hmm, mit 5 multiplizieren (5 mal addieren) und die letzte Stelle auf 0 bringen.**Netter Versuch. Aber durch 10 teilen zu müssen, um die letzte stelle auf 0 zu bringen, vereinfacht das Problem nur unwesentlich.[/QB][/QUOTE]
Naja, war auch nur so eine Idee, für die Bauernmethode hat das jedenfalls prima geklappt
-
Hmm... ich würde das so machen:
- Zu dividierende Zahl in ein anderes Feld kopieren.
- Das nächste Feld auf 0 bringen.
- Eine Schleife, bei der die Kopie der zu dividierenden Zahl jeweils um 2 vermindert wird, und das Feld, welches zuvor auf 0 gesetzt wurde um eins erhöht wird.
lg, phreaking
EDIT: Ein Problem gibt es nur, wenn die zu dividierende Zahl nicht gerade ist
[ Dieser Beitrag wurde am 20.10.2002 um 12:42 Uhr von phreaking editiert. ]
-
für gerade zahlen (ungetestet):
>[-]<[>+<-]>[<+>--]
ups das ist ja das selbe wie phreakings
[ Dieser Beitrag wurde am 20.10.2002 um 17:32 Uhr von japro editiert. ]
[ Dieser Beitrag wurde am 20.10.2002 um 17:33 Uhr von japro editiert. ]
-
Original erstellt von japro:
**für gerade zahlen (ungetestet):
**Es geht mir um die Kalenderaufgabe des buha-coding-contests. hab deswegen gestern mit bf angefangen.
Da muß ich /4 und %7 schaffen für zahlen, die nicht glatte vielfache sind.
Am besten wohl gleich für beliebige Zahlen.
-
Habs geschafft
[->>+>+<<<]>>>[-<<<+>>>]<-<<<[>>>[->+>+<<]>>[-<<+>>]+<[[-]>-<]>[-< +>]<[[-]<<+<[->>+>+<<<]>>>[-<<<+>>>]]<-<<<-]>>[-<<+>>]>[-<<->>]<<-
Und wer den Code haben mag, wie ich ihn geschrieben hab (ist eigentlich eher forth, aber naja, in bf kann man ja nix entwickeln.):
// divisor=5 dividend=2 PUSHZERO result > DUP2 count <[->>+>+<<<]>>>[-<<<+>>>]< DEC count - // divisor=5 dividend=2 result=0 (count=2) tmp go divisor <<< while divisor [ go count >>> DUP1 tmp [->+>+<<]>>[-<<+>>]< NOT tmp >+<[[-]>-<]>[-<+>]< IF tmp [[-] go result << INC result + DUP2 count <[->>+>+<<<]>>>[-<<<+>>>]< go tmp > ENDIF tmp ] go count < DEC count - go divisor <<< DEC divisor - ENDWHILE divisor ] // (divisor=0) dividend=2 result=0 count=? go result >> add to divisor [-<<+>>] go count > sub from dividend [-<<->>] go dividend << DEC dividend -
-
BTW : Wird Brainfuck bei dem Coding-Contest eigentlich akzeptiert?!
-
Original erstellt von Gregor:
BTW : Wird Brainfuck bei dem Coding-Contest eigentlich akzeptiert?!Wenn die sehen, wie viel Mühe ich mir gemacht hab, werden sie's schon akzeptieren, hoff ich.
-
Original erstellt von volkard:
**```
// divisor=5 dividend=2
PUSHZERO result >
DUP2 count <[->>+>+<<<]>>>[-<<<+>>>]<
DEC count -
// divisor=5 dividend=2 result=0 (count=2) tmp
go divisor <<<
while divisor [
go count >>>
DUP1 tmp [->+>+<<]>>[-<<+>>]<
NOT tmp >+<[[-]>-<]>[-<+>]<
IF tmp [[-]
go result <<
INC result +
DUP2 count <[->>+>+<<<]>>>[-<<<+>>>]<
go tmp >
ENDIF tmp ]
go count <
DEC count -
go divisor <<<
DEC divisor -
ENDWHILE divisor ]
// (divisor=0) dividend=2 result=0 count=?
go result >>
add to divisor [-<<+>>]
go count >
sub from dividend [-<<->>]
go dividend <<
DEC dividend -Ahhhhhhhhhhhhh!!!!! IGITT! That really fucks your brain!
-
Keine Sorge, wird akzeptiert, aber ich denke auf die Auflösung wirst du etwas länger warten müssen als normal
-
@volkard: hol dir den bfa.
-
Original erstellt von Mr. N:
@volkard: hol dir den bfa.Das würde doch gegen den "Ehren-Codex" verstoßen!
-
was ist ein ehren-kodex?
ne, mal im ernst: mvr ist doch besser als >
-
Naja, da gehts um die Ehre :D, bei sowas mogelt man doch nicht.
-
mogeln? wolltest du einen mcdonalds simulator in reinem bf schreiben?
-
lol der mc-donalds simulator hat schon was, hab mich beömmelt.
naja, das wäre schon ziemliches gemogle, wenn man so ein prog in einem basic-slang schreiben und das mit dem bfa in ein bf-file umwandeln würde.