<?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[Variationen ohne Wiederholungen berechnen]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin neu hier, und weiß nicht ob das hierher gehört.<br />
Ich soll einen c++ code schreiben der Variationen ohne Wiederholungen berechnen kann. Ich wollte es folgendermaßen lösen:</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;
int main()
{
    int fakultaet = 1, eingabe;
    int eingabe1;

    cout &lt;&lt; &quot;Der Wert n &quot; &lt;&lt; endl;
    cin &gt;&gt; eingabe;

    cout &lt;&lt; &quot; Der Wert k &quot; &lt;&lt; endl;
    cin &gt;&gt; eingabe1;

    int klammer = eingabe - eingabe1;

    cout &lt;&lt; &quot;n - k &quot; &lt;&lt; klammer &lt;&lt; endl;

    int fakultaet1 = klammer;

    for (int k = klammer; k &gt; 0; k--)
    int fakultaet1 = klammer * k;

    cout &lt;&lt; &quot;(n -k )! &quot; &lt;&lt; fakultaet1 &lt;&lt; endl;

    for (int i = eingabe; i &gt; 0; i--)
        fakultaet = fakultaet * i;

    cout &lt;&lt; &quot;Das Ergenbis 1 ist &quot; &lt;&lt; fakultaet &lt;&lt; endl;

    cout &lt;&lt; &quot;Das Endergebnis ist &quot; &lt;&lt; fakultaet / fakultaet1 &lt;&lt; endl;
    return 0;
}
</code></pre>
<p>so jetzt die fragen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> also der compiler macht ohne murren und rechnet aber das richtige ergebnis bekomme ich nur bei n= 4 und k = 2 ansonsten kommt ein falsches ergebnis.<br />
Die zweite frage ist warum funktioniert nichts mehr wenn ich die variablen ganz am anfang deklariere?</p>
<p>MfG<br />
und danke im voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/340426/variationen-ohne-wiederholungen-berechnen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 02:51:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/340426.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 07 Nov 2016 20:17:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Variationen ohne Wiederholungen berechnen on Mon, 07 Nov 2016 20:17:42 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin neu hier, und weiß nicht ob das hierher gehört.<br />
Ich soll einen c++ code schreiben der Variationen ohne Wiederholungen berechnen kann. Ich wollte es folgendermaßen lösen:</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;
int main()
{
    int fakultaet = 1, eingabe;
    int eingabe1;

    cout &lt;&lt; &quot;Der Wert n &quot; &lt;&lt; endl;
    cin &gt;&gt; eingabe;

    cout &lt;&lt; &quot; Der Wert k &quot; &lt;&lt; endl;
    cin &gt;&gt; eingabe1;

    int klammer = eingabe - eingabe1;

    cout &lt;&lt; &quot;n - k &quot; &lt;&lt; klammer &lt;&lt; endl;

    int fakultaet1 = klammer;

    for (int k = klammer; k &gt; 0; k--)
    int fakultaet1 = klammer * k;

    cout &lt;&lt; &quot;(n -k )! &quot; &lt;&lt; fakultaet1 &lt;&lt; endl;

    for (int i = eingabe; i &gt; 0; i--)
        fakultaet = fakultaet * i;

    cout &lt;&lt; &quot;Das Ergenbis 1 ist &quot; &lt;&lt; fakultaet &lt;&lt; endl;

    cout &lt;&lt; &quot;Das Endergebnis ist &quot; &lt;&lt; fakultaet / fakultaet1 &lt;&lt; endl;
    return 0;
}
</code></pre>
<p>so jetzt die fragen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> also der compiler macht ohne murren und rechnet aber das richtige ergebnis bekomme ich nur bei n= 4 und k = 2 ansonsten kommt ein falsches ergebnis.<br />
Die zweite frage ist warum funktioniert nichts mehr wenn ich die variablen ganz am anfang deklariere?</p>
<p>MfG<br />
und danke im voraus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2514461</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2514461</guid><dc:creator><![CDATA[MMA-E]]></dc:creator><pubDate>Mon, 07 Nov 2016 20:17:42 GMT</pubDate></item><item><title><![CDATA[Reply to Variationen ohne Wiederholungen berechnen on Mon, 07 Nov 2016 20:30:43 GMT]]></title><description><![CDATA[<p>MMA-E schrieb:</p>
<blockquote>
<p>Die zweite frage ist warum funktioniert nichts mehr wenn ich die variablen ganz am anfang deklariere?</p>
</blockquote>
<p>Tja, da du ja nur diese fehlerhafte Version zeigst, kann man nur raten: vermutlich nimmst du an, du könntest die Variablen als Formel deklarieren. Das ist falsch. Wenn du a=b*c schreibst, wird das genau in der Zeile mit den dann bekannten Werten ausgerechnet.</p>
<p>Was denkst du passiert hier?</p>
<pre><code>for (int k = klammer; k &gt; 0; k--)
    int fakultaet1 = klammer * k;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2514465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2514465</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Mon, 07 Nov 2016 20:30:43 GMT</pubDate></item><item><title><![CDATA[Reply to Variationen ohne Wiederholungen berechnen on Mon, 07 Nov 2016 20:54:14 GMT]]></title><description><![CDATA[<p>Eine bessere Benennung deiner Variablen wäre sehr hilfreich.</p>
<p>Insbesondere könntest du &quot;eingabe&quot; in &quot;n&quot; und &quot;eingabe1&quot; in &quot;k&quot; umbenennen. Diese solltest du sinnigerweise dann an eine Funktion übergeben, die dir das gewünschte Ergebnis berechnet.</p>
<p>Also schreibst du am besten eine Funktion <code>int variationen_ohne_wdh(int n, int k)</code> (ggf. unsigned long long als Rückgabetyp nehmen, ggf. sogar double, aber int geht auch erstmal, wenn die Zahlen klein genug bleiben).</p>
<p>So und dann: ist mit &quot;Variationen ohne Wh&quot; gemeint, dass wie beim Lotto auch die Reihenfolge der gezogenen Zahlen keine Rolle spielen soll? Oder soll die wichtig sein? Wenn die irrelevant ist, musst du noch durch k! teilen.</p>
<p>Jedenfalls solltest du vor der Berechnung der Fakultät ZUERST so viel wie möglich kürzen. D.h. wenn du <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>n</mi><mo>!</mo><mi mathvariant="normal">/</mi><mo>(</mo><mi>n</mi><mo>−</mo><mi>k</mi><mo>)</mo><mo>!</mo></mrow><annotation encoding="application/x-tex">n!/(n-k)!</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit">n</span><span class="mclose">!</span><span class="mord mathrm">/</span><span class="mopen">(</span><span class="mord mathit">n</span><span class="mbin">−</span><span class="mord mathit" style="margin-right:0.03148em;">k</span><span class="mclose">)</span><span class="mclose">!</span></span></span></span> berechnest, dann berechne NICHT n!, sondern berechne n \times (n-1) \times \dots \times (n-k+1). Die Fakultät wird ansonsten schnell viel zu groß für einen int (oder auch long).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2514470</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2514470</guid><dc:creator><![CDATA[wob]]></dc:creator><pubDate>Mon, 07 Nov 2016 20:54:14 GMT</pubDate></item><item><title><![CDATA[Reply to Variationen ohne Wiederholungen berechnen on Mon, 07 Nov 2016 21:09:41 GMT]]></title><description><![CDATA[<p>MMA-E schrieb:</p>
<blockquote>
<p>also der compiler macht ohne murren[...]</p>
</blockquote>
<p>Dann schalt mal Warnungen in Deinem Compiler an.<br />
Siehe auch <em>manni66</em>s Posting.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2514472</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2514472</guid><dc:creator><![CDATA[Furble Wurble]]></dc:creator><pubDate>Mon, 07 Nov 2016 21:09:41 GMT</pubDate></item><item><title><![CDATA[Reply to Variationen ohne Wiederholungen berechnen on Wed, 09 Nov 2016 18:21:03 GMT]]></title><description><![CDATA[<p>okay vielen dank für die Antworten haben mir sehr geholfen, war auf dem Schlauch gestanden. . ... bin ganz neu in der Materie und bitte um Nachsicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2514773</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2514773</guid><dc:creator><![CDATA[MMA-E]]></dc:creator><pubDate>Wed, 09 Nov 2016 18:21:03 GMT</pubDate></item><item><title><![CDATA[Reply to Variationen ohne Wiederholungen berechnen on Wed, 09 Nov 2016 20:11:44 GMT]]></title><description><![CDATA[<p>Also ich habe es jetzt so gelöst:</p>
<pre><code>#include &lt;iostream&gt;

using namespace std;

int fakultaet_berechnung(int wert)
{
    int fakultaet = 1;

    for(int i = wert; i &gt; 0; i--)
        fakultaet = fakultaet * i;
        return fakultaet;
}

int main()
{
    int  n,k;

    cout &lt;&lt; &quot;geben sie n ein &quot; &lt;&lt; endl;
    cin &gt;&gt; n;
    cout &lt;&lt; &quot;geben sie k ein &quot; &lt;&lt; endl;
    cin &gt;&gt; k;

    int klammer = n -k;

    cout &lt;&lt; &quot;die moeglichen variationen &quot; &lt;&lt; fakultaet_berechnung(n) / fakultaet_berechnung(klammer) &lt;&lt; endl;

    return 0;
}
</code></pre>
<p>es funktioniert auch alles . ... wollte nur mal eure meinung hören ob man da noch was verbessern könnte? danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2514787</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2514787</guid><dc:creator><![CDATA[MMA-E]]></dc:creator><pubDate>Wed, 09 Nov 2016 20:11:44 GMT</pubDate></item><item><title><![CDATA[Reply to Variationen ohne Wiederholungen berechnen on Wed, 09 Nov 2016 21:20:50 GMT]]></title><description><![CDATA[<p>MMA-E schrieb:</p>
<blockquote>
<p>Also ich habe es jetzt so gelöst: wollte nur mal eure meinung hören ob man da noch was verbessern könnte? danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<p>Ja. Kleinkram.</p>
<ul>
<li>Die Fakultät könnte man constexpr machen (ab C++14 - bei C++11 müsste man dann zur rekursiven Variante gehen). Hat keine Auswirkungen auf dein Programm, aber falls du das mal irgendwo anderweitig einsetzen möchtest, könntest du dann die Fakultät von einem constexpr-Ausdruck schon zur Compilezeit ausrechnen.</li>
<li>Das return im main (und nur dort) ist überflüssig (schadet aber nicht)</li>
<li>Wichtig: Das return aus fakultaet_berechnung ist falsch eingerückt</li>
<li>Benennung. Das ist eher ein genereller Punkt, den ich für etwas relevanter halte. Die Funktion braucht den Namenszusatz &quot;_berechnung&quot; nicht. Nenne sie einfach &quot;fakultaet&quot; oder &quot;factorial&quot;. Die Variable, in der du das Ergebnis aufmultiplizierst, würde ich &quot;result&quot; nennen. Den Parameter &quot;wert&quot; hätte ich wahrscheinlich &quot;n&quot; genannt (macht irgendwie klarer, dass es eine natürliche Zahl ist) und die Scheife wäre ich wohl vorwärts durchgelaufen.</li>
<li>Auf die Variable &quot;klammer&quot; würde ich wohl verzichten, <code>n-k</code> ist einfach genug und man kann die Formel dann im ganzen lesen.</li>
</ul>
]]></description><link>https://www.c-plusplus.net/forum/post/2514792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2514792</guid><dc:creator><![CDATA[wob]]></dc:creator><pubDate>Wed, 09 Nov 2016 21:20:50 GMT</pubDate></item></channel></rss>