<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Fakultätsoperator für ein Programm?]]></title><description><![CDATA[<p>Will ein Programm schrieben das mit einen Fakultätsoperator rechnen kann. Nur es gibt eine Problem ich weiß nicht wie der Fakultätsoperator rechnet, nur so viel das (7! = 7*6*5*4*3*2*1). Durch die Recherche habe eine Vorstellung wie der Code aussehen könnte:</p>
<pre><code class="language-cpp">int fakultaet(int zahl)
{
    int ergebnis = 1;

    for (int i=2;i&lt;=zahl;i++)
    {
        ergebnis = ergebnis * i;
    }    

    return ergebnis;
}
</code></pre>
<p>Oder</p>
<pre><code class="language-cpp">(define (fact n)
  (if (= n 1)
      1
      (* n (fact (- n 1)))))
</code></pre>
<p>Oder</p>
<pre><code class="language-cpp">double fak( double x) {
if(x&gt;=1)
return 1
return fak( x-1);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/276565/fakultätsoperator-für-ein-programm</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 07:31:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/276565.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 04 Nov 2010 16:33:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fakultätsoperator für ein Programm? on Thu, 04 Nov 2010 16:33:31 GMT]]></title><description><![CDATA[<p>Will ein Programm schrieben das mit einen Fakultätsoperator rechnen kann. Nur es gibt eine Problem ich weiß nicht wie der Fakultätsoperator rechnet, nur so viel das (7! = 7*6*5*4*3*2*1). Durch die Recherche habe eine Vorstellung wie der Code aussehen könnte:</p>
<pre><code class="language-cpp">int fakultaet(int zahl)
{
    int ergebnis = 1;

    for (int i=2;i&lt;=zahl;i++)
    {
        ergebnis = ergebnis * i;
    }    

    return ergebnis;
}
</code></pre>
<p>Oder</p>
<pre><code class="language-cpp">(define (fact n)
  (if (= n 1)
      1
      (* n (fact (- n 1)))))
</code></pre>
<p>Oder</p>
<pre><code class="language-cpp">double fak( double x) {
if(x&gt;=1)
return 1
return fak( x-1);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1975178</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1975178</guid><dc:creator><![CDATA[winux]]></dc:creator><pubDate>Thu, 04 Nov 2010 16:33:31 GMT</pubDate></item><item><title><![CDATA[Reply to Fakultätsoperator für ein Programm? on Thu, 04 Nov 2010 16:57:09 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt; 

template &lt;int N&gt; 
class fakultaet 
{ 
  public: 
    enum { value = N * fakultaet&lt;N - 1&gt;::value }; 
}; 

template &lt;&gt; 
class fakultaet&lt;1&gt; 
{ 
  public: 
    enum { value = 1 }; 
}; 

int main() 
{ 
  std::cout &lt;&lt; fakultaet&lt;4&gt;::value &lt;&lt; std::endl; 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1975196</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1975196</guid><dc:creator><![CDATA[HighLigerBiMBam]]></dc:creator><pubDate>Thu, 04 Nov 2010 16:57:09 GMT</pubDate></item><item><title><![CDATA[Reply to Fakultätsoperator für ein Programm? on Thu, 04 Nov 2010 16:58:07 GMT]]></title><description><![CDATA[<p>Und deine Frage?</p>
<p>Das eine ist übrigens kein C++. Lisp?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1975198</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1975198</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 04 Nov 2010 16:58:07 GMT</pubDate></item><item><title><![CDATA[Reply to Fakultätsoperator für ein Programm? on Thu, 04 Nov 2010 16:59:00 GMT]]></title><description><![CDATA[<p>Du kannst in C++ keine Willkürlichen Zeichen als Operatoren definieren. Das geht nur in wenigen Sprachen (z.Bsp. Perl 6).<br />
Deine jetzige Implementation ist relativ langsam und wenn du die Zahlen, die du verwenden willst schon zur Kompillierzeit weisst, würde ich dir <a href="http://www.boost.org/doc/libs/1_44_0/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html" rel="nofollow">Boost.Math.Factorial</a> empfehlen.</p>
<p>Im Code steht dann:</p>
<pre><code class="language-cpp">#include &lt;boost/math/special_functions/factorials.hpp&gt;
int fact10 = boost::math::factorial(10);

// oder
#include &lt;boost/math/special_functions/factorials.hpp&gt;
using namespace boost::math;
int fact10 = factorial(10);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1975199</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1975199</guid><dc:creator><![CDATA[bsdux]]></dc:creator><pubDate>Thu, 04 Nov 2010 16:59:00 GMT</pubDate></item><item><title><![CDATA[Reply to Fakultätsoperator für ein Programm? on Thu, 04 Nov 2010 17:05:56 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Das eine ist übrigens kein C++. Lisp?</p>
</blockquote>
<p>Scheme.<br />
Und das dritte ist syntaktisch falsch und ansonsten eine recht umständliche Art und Weise, return 1; zu schreiben, aber keine Fakultät <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> Das erste sieht doch ganz gut aus, wo ist das Problem?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1975204</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1975204</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 04 Nov 2010 17:05:56 GMT</pubDate></item><item><title><![CDATA[Reply to Fakultätsoperator für ein Programm? on Thu, 04 Nov 2010 17:17:39 GMT]]></title><description><![CDATA[<p>kurz und knapp:</p>
<pre><code class="language-cpp">int fak(int n) { return (n&lt;2) ? n : n * fak(n-1); }
</code></pre>
<p>rekursive definition und sehr kurz geschrieben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1975214</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1975214</guid><dc:creator><![CDATA[TheQ]]></dc:creator><pubDate>Thu, 04 Nov 2010 17:17:39 GMT</pubDate></item><item><title><![CDATA[Reply to Fakultätsoperator für ein Programm? on Thu, 04 Nov 2010 17:27:05 GMT]]></title><description><![CDATA[<p>TheQ schrieb:</p>
<blockquote>
<p>kurz und knapp:</p>
<pre><code class="language-cpp">int fak(int n) { return (n&lt;2) ? n : n * fak(n-1); }
</code></pre>
<p>rekursive definition und sehr kurz geschrieben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>und falsch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1975225</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1975225</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 04 Nov 2010 17:27:05 GMT</pubDate></item><item><title><![CDATA[Reply to Fakultätsoperator für ein Programm? on Thu, 04 Nov 2010 17:30:41 GMT]]></title><description><![CDATA[<p>Danke für die Hilfe, jetzt kann ich es im den Code infügen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1975229</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1975229</guid><dc:creator><![CDATA[winux]]></dc:creator><pubDate>Thu, 04 Nov 2010 17:30:41 GMT</pubDate></item><item><title><![CDATA[Reply to Fakultätsoperator für ein Programm? on Thu, 04 Nov 2010 17:37:44 GMT]]></title><description><![CDATA[<p>Bashar schrieb:</p>
<blockquote>
<p>TheQ schrieb:</p>
<blockquote>
<p>kurz und knapp:</p>
<pre><code class="language-cpp">int fak(int n) { return (n&lt;2) ? n : n * fak(n-1); }
</code></pre>
<p>rekursive definition und sehr kurz geschrieben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>und falsch.</p>
</blockquote>
<p>wo denn?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1975234</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1975234</guid><dc:creator><![CDATA[TheQ]]></dc:creator><pubDate>Thu, 04 Nov 2010 17:37:44 GMT</pubDate></item><item><title><![CDATA[Reply to Fakultätsoperator für ein Programm? on Thu, 04 Nov 2010 17:43:14 GMT]]></title><description><![CDATA[<p>TheQ schrieb:</p>
<blockquote>
<p>Bashar schrieb:</p>
<blockquote>
<p>TheQ schrieb:</p>
<blockquote>
<p>kurz und knapp:</p>
<pre><code class="language-cpp">int fak(int n) { return (n&lt;2) ? n : n * fak(n-1); }
</code></pre>
<p>rekursive definition und sehr kurz geschrieben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>und falsch.</p>
</blockquote>
<p>wo denn?</p>
</blockquote>
<p>Gib mal 0 ein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1975241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1975241</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 04 Nov 2010 17:43:14 GMT</pubDate></item><item><title><![CDATA[Reply to Fakultätsoperator für ein Programm? on Thu, 04 Nov 2010 17:54:05 GMT]]></title><description><![CDATA[<p>ok, mal laut wikipedia die definition angeschaut und verbessert.</p>
<pre><code class="language-cpp">int fak(int n) { return (n==0) ? 1 : n * fak(n-1); }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1975251</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1975251</guid><dc:creator><![CDATA[TheQ]]></dc:creator><pubDate>Thu, 04 Nov 2010 17:54:05 GMT</pubDate></item><item><title><![CDATA[Reply to Fakultätsoperator für ein Programm? on Thu, 04 Nov 2010 17:57:20 GMT]]></title><description><![CDATA[<p>sieht richtig aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1975257</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1975257</guid><dc:creator><![CDATA[HighLigerBiMBam]]></dc:creator><pubDate>Thu, 04 Nov 2010 17:57:20 GMT</pubDate></item><item><title><![CDATA[Reply to Fakultätsoperator für ein Programm? on Thu, 04 Nov 2010 18:00:54 GMT]]></title><description><![CDATA[<p>Ist aber immer noch ziemlich lahm. Für Fakultäten gibt es keinen guten Grund zur Rekursion zu greifen. Schließlich gibt es keinerlei Verzweigungen im Ablauf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1975260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1975260</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 04 Nov 2010 18:00:54 GMT</pubDate></item><item><title><![CDATA[Reply to Fakultätsoperator für ein Programm? on Thu, 04 Nov 2010 18:01:45 GMT]]></title><description><![CDATA[<p>Bei dir kann man -1 eingeben und das Resultat ist sicher komisch.<br />
Deshalb:</p>
<pre><code class="language-cpp">// 1. Variante
unsigned fak(unsigned n) { return n?n*fak(n-1):1; }
// 2. Variante
int fak(int n) { return n&lt;2?1:n*fak(n-1); } // 1 bei -1 ist zwar komisch, aber verständlich
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1975261</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1975261</guid><dc:creator><![CDATA[tiefer, schneller, kürzer]]></dc:creator><pubDate>Thu, 04 Nov 2010 18:01:45 GMT</pubDate></item><item><title><![CDATA[Reply to Fakultätsoperator für ein Programm? on Thu, 04 Nov 2010 18:02:02 GMT]]></title><description><![CDATA[<p>Des halb habe ich auch aus Performancegründen zum TMP gegriffen ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1975262</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1975262</guid><dc:creator><![CDATA[HighLigerBiMBam]]></dc:creator><pubDate>Thu, 04 Nov 2010 18:02:02 GMT</pubDate></item><item><title><![CDATA[Reply to Fakultätsoperator für ein Programm? on Thu, 04 Nov 2010 18:09:15 GMT]]></title><description><![CDATA[<p>Ja sicher, TMP: überhaupt nicht rekursiv und sehr schnell und praxisbezogen:</p>
<pre><code class="language-cpp">int i;
std::cin &gt;&gt; i;
std::cout &lt;&lt; fakultaet&lt;i&gt;() &lt;&lt; std::endl;
</code></pre>
<p>Da verwende ich doch lieber Boost, weil für vordefinierte Werte Fakultäten vom Compiler berechnen zu lassen ist doch eher unüblich (und ausserdem musst du die Funktion sehr oft aufrufen, um die dafür zusätzlich benötigte Compilezeit wieder reinzuholen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1975268</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1975268</guid><dc:creator><![CDATA[bsdux]]></dc:creator><pubDate>Thu, 04 Nov 2010 18:09:15 GMT</pubDate></item><item><title><![CDATA[Reply to Fakultätsoperator für ein Programm? on Thu, 04 Nov 2010 18:18:11 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int fak(unsigned n)
{
  unsigned result=1;
  for (unsigned i=1; i&lt;=n; ++n) result*=i;
  return result;
}
</code></pre>
<p>Sieht zwar weniger schick aus, aber lasst das mal gegen die Rekursionsfunktion rennen.</p>
<p>edit: &lt;= natürlich. Alte Gewohnheit <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1975274</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1975274</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 04 Nov 2010 18:18:11 GMT</pubDate></item><item><title><![CDATA[Reply to Fakultätsoperator für ein Programm? on Thu, 04 Nov 2010 18:48:28 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<pre><code class="language-cpp">int fak(unsigned n)
{
  unsigned result=1;
  for (unsigned i=1; i&lt;=n; ++n) result*=i;
  return result;
}
</code></pre>
<p>Sieht zwar weniger schick aus, aber lasst das mal gegen die Rekursionsfunktion rennen.</p>
<p>edit: &lt;= natürlich. Alte Gewohnheit <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
</blockquote>
<p>Ist aber immernoch falsch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1975295</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1975295</guid><dc:creator><![CDATA[HighLigerBiMBam]]></dc:creator><pubDate>Thu, 04 Nov 2010 18:48:28 GMT</pubDate></item><item><title><![CDATA[Reply to Fakultätsoperator für ein Programm? on Thu, 04 Nov 2010 19:29:45 GMT]]></title><description><![CDATA[<p>hmmmmm,..</p>
<p>x&gt;(2^13) kommt doch so oder so ein überlauf,... da beschwer ich mich doch nicht über die performance,... geschweige das das double noch net mal darstellen kann,..</p>
<p>greetz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1975322</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1975322</guid><dc:creator><![CDATA[zeusosc]]></dc:creator><pubDate>Thu, 04 Nov 2010 19:29:45 GMT</pubDate></item><item><title><![CDATA[Reply to Fakultätsoperator für ein Programm? on Thu, 04 Nov 2010 19:45:53 GMT]]></title><description><![CDATA[<p>HighLigerBiMBam schrieb:</p>
<blockquote>
<p>Ist aber immernoch falsch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<pre><code class="language-cpp">template&lt;typename Type&gt;
Type Facul(Type x) {
	if(x&lt;0) return 0;
	Type f=1;
	while(x&gt;1) f*=x--;
	return(f);
}
</code></pre>
<p>So kann's aussehen. Von rekursiven Aufrufen kann ich nur abraten, bei solchen Spielfunktonen noch akzeptabel, ist bei einigen anderen Algorithmen wie z.B. <a href="http://de.wikipedia.org/wiki/Floodfill" rel="nofollow">Floodfill</a> nicht angebracht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1975329</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1975329</guid><dc:creator><![CDATA[Vicious Falcon]]></dc:creator><pubDate>Thu, 04 Nov 2010 19:45:53 GMT</pubDate></item><item><title><![CDATA[Reply to Fakultätsoperator für ein Programm? on Sat, 06 Nov 2010 16:31:47 GMT]]></title><description><![CDATA[<p>Nochmals danke an alle für eure Hilfe, ohne eure Hilfe hätte ich das nie lösen können. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1976166</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1976166</guid><dc:creator><![CDATA[winux]]></dc:creator><pubDate>Sat, 06 Nov 2010 16:31:47 GMT</pubDate></item></channel></rss>