<?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[Größter gemeinsamer Teiler mittels rekursiver Funktion]]></title><description><![CDATA[<p>Hi</p>
<p>Aufgabe ist es, ein Programm zu schreiben welches den größten gemeinsamen Teiler zweier natürlichen Zahlen ausgibt, jedoch ohne Schleifen zu verwenden. Mein Ansatz war die Verwendung einer direkt rekursiven Funktion. Wenn ich das Programm starte und die zwei Zahlen eingelesen habe startet es jedoch eine Endlosschleife und es funkioniert nicht mehr.</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;

int eingabe1, eingabe2;

int ggt (int a, int b){
	if(a!=b){
		if(a&gt;b){
			a=a-1;
			if(eingabe1%a==0 &amp;&amp; eingabe2%b==0 &amp;&amp; a==b){
				return a;}
			else{
				ggt(a, b);}}
		else{
			b=b-1;
			if(eingabe1%a==0 &amp;&amp; eingabe2%b==0 &amp;&amp; a==b){
				return a;}
			else{
				ggt(a, b);}
			}
		}
		a=a-1;
		b=b-1;
		if(eingabe1%a==0 &amp;&amp; eingabe2%b==0){
				return a;}
			else{
				ggt(a, b);}
	}

int main (){
	cin &gt;&gt; eingabe1 &gt;&gt; eingabe2;
	cout &lt;&lt; ggt(eingabe1, eingabe2);
	return 0;
}
</code></pre>
<p>Ich hoffe ihr könnt mir helfen und schonmal danke im Voraus! <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="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/329226/größter-gemeinsamer-teiler-mittels-rekursiver-funktion</link><generator>RSS for Node</generator><lastBuildDate>Sat, 30 May 2026 15:59:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/329226.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 13 Nov 2014 13:07:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Größter gemeinsamer Teiler mittels rekursiver Funktion on Thu, 13 Nov 2014 13:07:33 GMT]]></title><description><![CDATA[<p>Hi</p>
<p>Aufgabe ist es, ein Programm zu schreiben welches den größten gemeinsamen Teiler zweier natürlichen Zahlen ausgibt, jedoch ohne Schleifen zu verwenden. Mein Ansatz war die Verwendung einer direkt rekursiven Funktion. Wenn ich das Programm starte und die zwei Zahlen eingelesen habe startet es jedoch eine Endlosschleife und es funkioniert nicht mehr.</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;

int eingabe1, eingabe2;

int ggt (int a, int b){
	if(a!=b){
		if(a&gt;b){
			a=a-1;
			if(eingabe1%a==0 &amp;&amp; eingabe2%b==0 &amp;&amp; a==b){
				return a;}
			else{
				ggt(a, b);}}
		else{
			b=b-1;
			if(eingabe1%a==0 &amp;&amp; eingabe2%b==0 &amp;&amp; a==b){
				return a;}
			else{
				ggt(a, b);}
			}
		}
		a=a-1;
		b=b-1;
		if(eingabe1%a==0 &amp;&amp; eingabe2%b==0){
				return a;}
			else{
				ggt(a, b);}
	}

int main (){
	cin &gt;&gt; eingabe1 &gt;&gt; eingabe2;
	cout &lt;&lt; ggt(eingabe1, eingabe2);
	return 0;
}
</code></pre>
<p>Ich hoffe ihr könnt mir helfen und schonmal danke im Voraus! <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="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2427436</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2427436</guid><dc:creator><![CDATA[flügelnuss]]></dc:creator><pubDate>Thu, 13 Nov 2014 13:07:33 GMT</pubDate></item><item><title><![CDATA[Reply to Größter gemeinsamer Teiler mittels rekursiver Funktion on Thu, 13 Nov 2014 13:50:44 GMT]]></title><description><![CDATA[<p>Was ist mit a==b?<br />
Wenn du den Warninglevel deines Compilers hochdrehst, sollte er die sagen, dass die Funktion ggt nicht immer einen Wert liefert.<br />
Deine {}-Paare sind sehr unleserlich gesetzt.<br />
Benutze einen Debugger.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2427439</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2427439</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Thu, 13 Nov 2014 13:50:44 GMT</pubDate></item><item><title><![CDATA[Reply to Größter gemeinsamer Teiler mittels rekursiver Funktion on Thu, 13 Nov 2014 13:59:44 GMT]]></title><description><![CDATA[<p>Und deine ggt-Funktion sollte nur die übergebenen Parameter a und b nutzen, nicht noch die globalen Eingabewerte!<br />
Der GGT zweier Zahlen ist schließlich immer gleich, egal welche Werte der User eingegeben hat <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="😉"
    /><br />
Tipp: <a href="http://de.wikipedia.org/wiki/Euklidischer_Algorithmus" rel="nofollow">Euklidischer Algorithmus</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2427440</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2427440</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Thu, 13 Nov 2014 13:59:44 GMT</pubDate></item></channel></rss>