Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » Fakultät, so schnell wie möglich

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
28.04.2003, 14:41 Uhr
~0xdeadbeef
Gast


@virtual: Der Makefile-Teil ist nicht wirklich C++. Gut, das kriegt man auch hin, aber...es ist einfach nicht richtig...

@christian: Schau mal hier: http://community.borland.com/article/print/0,1772,10526,00.html
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
30.04.2003, 17:57 Uhr
MeisterB



Ich hab zwar gerade erst mit C++ angefangen aber reicht folgendes nicht einfach aus?

#include <iostream>
using namespace std;
int main(int nNumberofArgs, char* pzArgs[])
{
int nEin;
cout<<"Geben Sie n ein: ";
cin>>nEin;
long double nZaeler=1;
for (int i=1;i<nEin+1;i++)
{
nZaeler*=(long double)i;
cout<<"!"<<i<<"= "<<nZaeler<<"\n";
}
return 0;
}

Was mich aber wirklich interessiert ist was genau

using namespace std;
und
(int nNumberofArgs, char* pzArgs[])

machen(bin soweit mit meinem C++Kursbuch noch nicht aber würde es jetzt schon gern wissen)?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
30.04.2003, 18:17 Uhr
~0xdeadbeef
Gast


Du musst die Fakultät noch zur Laufzeit ausrechnen. Der Trick an diesem template-Geschichten ist, dass der Compiler den Laufzeitoverhead schon zur Compilezeit wegoptimiert, so dass zur Laufzeit im wesentlichen noch dasteht

C++:
cout << 0 << "!:\t" << 1 << endl;
cout << 1 << "!:\t" << 1 << endl;
cout << 2 << "!:\t" << 2 << endl;
cout << 3 << "!:\t" << 6 << endl;
cout << 4 << "!:\t" << 24 << endl;
cout << 5 << "!:\t" << 120 << endl;
//...


Virtual zieht das noch ne Ecke weiter und schreibt sich im Grunde einen eigenen Präprozessor, der die Fakultäten bis 1000! ausrechnet und als String-Konstanten in die cpp-Datei einfügt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
30.04.2003, 18:41 Uhr
virtual
Sexiest Bit alive
(Operator)


Neben dem von beefy genannten Problem ist Dein Ansatz noch in anderweitiger Hinsicht Problematisch: Nehmen wir mal an, Du wolltest mit Deinem Program nun - ähnlich wie ich - 1000! ausrechnen. Ich vermute mal ganz kräftig, daß Deine Ergebnisse sehr ungenau werden würden. Die Genauigkeit von long double läßt zu wünschen übrig. Der Wertebereich von Fließkommazahlen mag zwar gigantisch sein, aber meistens ist bei spätestens 15-16 nachkommastellen Sabbat was die Verläßlichkeit angeht. Eigentlich mal ein FAQ wert
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ Rätselecke ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: