<?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[Zahl auf Fibonaccizahl prüfen]]></title><description><![CDATA[<p>Hallo zusammen,<br />
ich möchte ein Miniprogramm schreiben, dass eine Zahl, die per Parameter übergeben wird, überprüft, ob es sich um eine Fibonaccizahl handelt. Ich habe diesen Code:</p>
<pre><code class="language-cpp">int fibRec(int num)
    {
      if(num&lt;=2)
          return 1;
      return fibRec(num-1) + fibRec(num-2);
    }
</code></pre>
<p>Diese Funktion gibt aber nur die &quot;num&quot;te Fibonaccizahl zurück. Natürlich könnte ich ein dynamisches Array mit allen Fibonaccizahlen füllen und dann die überprüfende Zahl mit jedem Elemt vergleichen. Aber es muss doch auch einfacher gehen. Könnt ihr mir helfen, wie ich den obigen Code abändern muss? Dabei muss die Funktion rekursiv bleiben. Die zu prüfende Zahl wird per Parameter übergeben.<br />
Vielen Dank<br />
Mr Fib</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/253899/zahl-auf-fibonaccizahl-prüfen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 11:48:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/253899.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 08 Nov 2009 15:58:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zahl auf Fibonaccizahl prüfen on Sun, 08 Nov 2009 15:58:08 GMT]]></title><description><![CDATA[<p>Hallo zusammen,<br />
ich möchte ein Miniprogramm schreiben, dass eine Zahl, die per Parameter übergeben wird, überprüft, ob es sich um eine Fibonaccizahl handelt. Ich habe diesen Code:</p>
<pre><code class="language-cpp">int fibRec(int num)
    {
      if(num&lt;=2)
          return 1;
      return fibRec(num-1) + fibRec(num-2);
    }
</code></pre>
<p>Diese Funktion gibt aber nur die &quot;num&quot;te Fibonaccizahl zurück. Natürlich könnte ich ein dynamisches Array mit allen Fibonaccizahlen füllen und dann die überprüfende Zahl mit jedem Elemt vergleichen. Aber es muss doch auch einfacher gehen. Könnt ihr mir helfen, wie ich den obigen Code abändern muss? Dabei muss die Funktion rekursiv bleiben. Die zu prüfende Zahl wird per Parameter übergeben.<br />
Vielen Dank<br />
Mr Fib</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805219</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805219</guid><dc:creator><![CDATA[Mr Fib]]></dc:creator><pubDate>Sun, 08 Nov 2009 15:58:08 GMT</pubDate></item><item><title><![CDATA[Reply to Zahl auf Fibonaccizahl prüfen on Sun, 08 Nov 2009 17:17:04 GMT]]></title><description><![CDATA[<p>was hast du denn schon?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805262</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805262</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sun, 08 Nov 2009 17:17:04 GMT</pubDate></item><item><title><![CDATA[Reply to Zahl auf Fibonaccizahl prüfen on Sun, 08 Nov 2009 19:32:14 GMT]]></title><description><![CDATA[<p>Ja, ich verstehe den geposteten Code, doch ich frage mich halt, ob ich das Problem nicht einfacer lösen kann. Ich bin aus der Arraygeschichte noch auf keine einfache und simple Lösung gekommen und suche daher jetzt nach Anregungen.</p>
<p>Vielen Dank<br />
Mr Fib</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805315</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805315</guid><dc:creator><![CDATA[Mr Fib]]></dc:creator><pubDate>Sun, 08 Nov 2009 19:32:14 GMT</pubDate></item><item><title><![CDATA[Reply to Zahl auf Fibonaccizahl prüfen on Sun, 08 Nov 2009 19:39:31 GMT]]></title><description><![CDATA[<p>hast du dir die aufgabe selber gestellt oder bekommen?<br />
falls bekommen: poste mal komplett...</p>
<p>mir würde auch nur nen ansatz einfallen, der 2 fkt braucht...<br />
und keine der beiden sieht so aus, wie die, die du gepostet hast^^</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805319</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sun, 08 Nov 2009 19:39:31 GMT</pubDate></item><item><title><![CDATA[Reply to Zahl auf Fibonaccizahl prüfen on Sun, 08 Nov 2009 19:50:19 GMT]]></title><description><![CDATA[<p>Das Einzige, was mir einfällt, wäre: Du gehst alle Fibonacci-Zahlen hintereinander durch (dazu kannst du die Funktion benutzen, die ja rekursiv bleiben muss). Wenn das Ergebnis genau der eingegebenen Zahl entspricht, ist es ja eine Fibonacci-Zahl, wenn es größer ist, kannst du abbrechen, und es ist keine. So ersparst du dir wenigstens das mit dem Array.</p>
<p>Es gibt aber bestimmt noch eine bessere, rechnerische Variante.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805323</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805323</guid><dc:creator><![CDATA[Amgon]]></dc:creator><pubDate>Sun, 08 Nov 2009 19:50:19 GMT</pubDate></item><item><title><![CDATA[Reply to Zahl auf Fibonaccizahl prüfen on Sun, 08 Nov 2009 19:53:34 GMT]]></title><description><![CDATA[<p>Amgon schrieb:</p>
<blockquote>
<p>Es gibt aber bestimmt noch eine bessere, rechnerische Variante.</p>
</blockquote>
<p>Genauso ist es. In der englischen Wikipedia sind ein paar schöne Kriterien erklärt. Jetzt frage ich mich natürlich, warum der Threadersteller diese nicht kennt, wenn er so eine Aufgabe gestellt bekommt und man sich innerhalb weniger Minuten diese Kriterien anlesen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805324</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805324</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 08 Nov 2009 19:53:34 GMT</pubDate></item><item><title><![CDATA[Reply to Zahl auf Fibonaccizahl prüfen on Sun, 08 Nov 2009 20:00:42 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">template&lt;typename T&gt;
T add(T a, T b)
{
  return a + b;
}

bool is_fib(std::size_t val)
{
  std::size_t fib_nr[2] = {1, 2};
  std::size_t i;
  for(i = 0; fib_nr[i] &lt; val; i = ++i%2)
  {
    fib_nr[i] = add(fib_nr[0], fib_nr[1]);
  }

  return fib_nr[i] == val;
}
</code></pre>
<p>so sollte es glaube ich _in etwa_ gehen!?<br />
kannst dich ja noch ma melden, falls es so schon komplett richtig ist^^</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1805325</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1805325</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sun, 08 Nov 2009 20:00:42 GMT</pubDate></item></channel></rss>