All pastes #1977944 Raw Edit

Miscellany

public c v1 · immutable
#1977944 ·published 2010-10-31 14:21 UTC
rendered paste body
#include <stdio.h>//int kgV(int A, int B)//nur um par variablen zu sparen:int kgV(int a, int b){	//int a,b,x,y;	//wir sparen weiter:	int x,y;	//a = x = A;   //btw. solche konstrukte sollte man NIE bauen.	//b = x = B;   //geht alles ber den stack->lahm, speicherintensiv	//wenn man die variablen schon braucht, dann geht das zB so:	//int x = A;	//int a = A;	//int y = B;	//int b = B;	//brauchen wir aber nicht, also sparen wir weiter:	//auch wrde es den code dnner machen, wenn man definition und initialisierung zusammenwirft:	//int x = a;	//int y = b;	x = a;	y = b;	//while(!(a = b)){	//a = b schreibt b in a und gibt b zurck. eben haben wir das prinzip noch angewendet. erinnern wir uns?	//a = x = A; fhrt (x = A) aus, was A zurck gibt und in a speichert.	//while(!(a=b)) macht also erst a=b und gibt dann vergleicht es, ob das ergebnis von a=b (also b) 	//die bedingung !(b) == true erfllt.	//somit wre !(a=b) immer dann erfllt, wenn b nicht ungleich 0 ist, also wenn b null ist.	while(!(a == b)){		//if(a < b)		//	b = b-a;		//y = y+x;		//ordentliches einrcken wrde schon helfen, den fehler zu sehen		if(a < b){			b = b-a;			y = y+x;		}		//if(a > b)		//	a = a-b;		//x = x+y;		//auch hier. einrcken ftw!		//zumal hier 'else' reichen wrde. immerhin wird a==b oben in while(...) abgefangen.		//->wenn a nicht kleiner und nicht gleich b ist, muss es grer sein 		//wrde wieder par maschinencode-anweisungen sparen.		if(a > b){			a = a-b;			x = x+y;		}	}		//return x/2 + y/2;	//auch wenn es richtig war, es berechnet zwei divisionen und dann noch eine addition. besser wre doch	//eine addition und dann eine division.	return (x+y)/2;}//eine kleine main-funktion, die den kgV berechnet. Knnte man auch nachprfen. wir erinnern uns://ggT(a,b) == (a*b)/kgV(a,b) ==> kgV(a,b) == (a*b)/ggT(a,b).//man msste also nur den eukliden einfgen und knnte nachrechnen.int main(int c, char **v){	//ausgabe des kgV von 245 und 135.	printf("kgV(245,135) == %d\n", kgV(245,135));	//EXIT_SUCCESS wre hier besser, weil es nicht immer so ist, dass 0 = keine Fehler bedeutet.	return 0;}//     (   UHU   )//           ()// |\|\//||    o// ||\|/\||      ,__,// |\//\\||      (00)// ||\|\/||______(,,)____// |\//\\|//--/--//---//()// |\\\|\/|// |//|\\||// |\|\//||          ( IHA! )// ||\|/\||              ()// |//|\\||                o (||)// |//|\\||                  (oo)______// |\|\//||_                 (__)     )\//_||\|/\||____\|/____\||/_____||----||_*___