Sieht schon etwas besser aus. Allerdings sind Fibonacci-Zahlen alle positiv, also sollte man einen unsigned-Typ verwenden und wenn Du Dir vom Compiler Warnungen ausgeben lässt (-Wall), wäre Dir aufgefallen, dass der Datentyp von erg2 nicht mit dem Format %i zusammen passt.
[CodeGala] Zeigt her eure Codes
|
Ehemalige
Anmeldungsdatum: Beiträge: 4735 |
|
||||
|
Anmeldungsdatum: Beiträge: 796 |
Ahh ok danke! |
||||
|
Ehemalige
Anmeldungsdatum: Beiträge: 4735 |
Ach nee, manchmal kann die Lösung so einfach sein. Zumindest, wenn der C-Compiler bei long double genug Bits verwendet. ☺ int main(void)
{
long double a, b, tmp;
int i;
a = 0;
b = 1;
for (i = 0; i < 100; i++) {
tmp = b;
b += a;
a = tmp;
printf("%21.0Lf %.53Lf\n", a, b / a);
}
return 0;
}
|
||||
|
Anmeldungsdatum: Beiträge: 31 |
++++++ Anzahl der Plus in dieser Zeile = die wievielte Fibanocci Zahl man haben moechte ->++>+<<[->[->+>+<<]>[-<+>]>[-<+>]<<<]>>. [-]++++++++++. und das ganze gibt dann das Zeichen mit dem ASCII-code der entsprechenden Zahl aus. edit: wers nicht kennt, das ist Brainfuck |
||||
|
Ehemalige
Anmeldungsdatum: Beiträge: 4735 |
Mal abgesehen davon, dass das etwas weit von der Aufgabenstellung entfernt ist, funktioniert's nicht. Das gibt die Bytewerte 13 und 10 aus. |
||||
|
Anmeldungsdatum: Beiträge: 31 |
Na es rechnet Fibanocci Zahlen aus .. und wenn man bei der zweiten 1 ( die 0 und 1 davor lass ich mal weg ) beginnt zu zaehlen dann ist 13 die sechste zahl .. mach ein + mehr in der ersten zeile und du bekommst 21 |
||||
|
Ehemalige
Anmeldungsdatum: Beiträge: 4735 |
Scherzkeks, man sieht auf der Konsole gar nichts, das wird auch durch den Zeilenvorschub nicht schöner. Wenn Du's in BF nicht hinbekommst die Aufgabe zu lösen, oder zumindest Die Fibonacci-Zahlen bis zur 100. lesbar aus zu geben, dann nimm besser eine andere Sprache. 🙄 |
||||
|
Anmeldungsdatum: Beiträge: 433 |
Gerade beim Fernsehen zusammengepuzzelt (Die Glorreichen Sieben an einem Neujahrsnachmittag ... IDEAL!) und mit Rücksicht auf die Lesbarkeit der Ausgabe. Ich habe aber nicht nach i (bei mir der Zähler) sortiert, sondern nach einer Zahlenhöchstgrenze.
|
||||
|
Anmeldungsdatum: Beiträge: 927 |
@Stefan Schmitz: Man sollte auch noch die Annäherung an den goldenen Schnitt berechen... |
||||
|
Ehemalige
Anmeldungsdatum: Beiträge: 4735 |
@Stefan Schmitz: Der Und es könnte in Python etwas kürzer ausgedrückt werden. Ohne
|
||||
|
Anmeldungsdatum: Beiträge: 433 |
Ah, danke. Das Programm bringe ich keinesfalls an's Laufen: ich musste folgende Änderungen vornehmen:
#! /usr/bin/python
#-*- coding: utf-8 -*-
# Fibonacci Folge nach uu.de
import itertools as itt
anz=int(raw_input('\n \n \n Anzahl Fibonacci Zahlen: '))
a, b= 0, 1
for i in itt.count(1):
if i >= anz:
break
a, b= b, a+b
print b,
print '\n \n \n Die Reihe endet nach %d Zahlen bei %d' %(i, b)
Abgesehen von den kosmetischen Änderungen, machte def main (): Probleme; nicht nur, dass ich nicht weis, was das tun oder helfen soll, es sorgt auch dafür, dass der darauf folgende Teil nicht gelesen/bearbeitet wird. Um darauf zu kommen, musste ich erstmal die Zeile mit der Abfrage nach der Anzahl der Zahlen (iter-cycles) VOR def main (): ziehen. Erst DANACH kam die Input Abfrage auf den Schirm... Ansonsten: Besten Dank! Wieder was gelernt. |
||||
|
Anmeldungsdatum: Beiträge: 479 |
Stefan Schmitz schrieb:
und wenn du jetzt noch Python könntest, wüsstest du das 'def' eine Funktion definiert. Da diese aber nirgends aufgerufen wird, passiert auch nichts. Ein einfaches "main()" am Ende der Datei hätte da Abhilfe geschaffen. 😉 |
||||
|
Anmeldungsdatum: Beiträge: 433 |
naja, dass def für define steht, habe ich mir schon zusammenpopeln können - es war nur hier falsch gesetzt (kein Ende) und/oder unnötig, oder? Ansonsten bin ich ganz zufrieden, wenn ich Korrekturen bekomme, die ich nachvollziehen kann. So lerne ich ja dazu ☺ |
||||
|
Anmeldungsdatum: Beiträge: 479 |
Stefan Schmitz schrieb:
😉 Python interpretiert den Code anhand der Einrückung, deshalb ist ein Keyword, um das Funktionsende anzuzeigen, unnötig. |
||||
|
Anmeldungsdatum: Beiträge: 99 |
Übrigens: Die Fibonacci Folge ist auch das erste Beispiel für eine Funktion in den offiziellen Python Tutorials (2.6.1, 3.0). Das Beispiel für Python 2.6.1:
Und für Python 3000:
Da lohnt es sicherlich auch mal reinzuschauen. 😉 |