Division numerator denominator mit Rest!
-
guten tag,
Ich besuche einen Programmierkurs den ich im Studiumfach Mathe belegen muss.Leider habe ich keine blassen schimmer wie man damit umgeht.
Aufgabe:Aufgabe 1 (Ganzzahliger Rest).
Schreiben Sie eine C-Funktion
int mod( int numerator , int denominator )
{
int result ;
. . .
return result ;
}
Die Funktion soll den Rest der Ganzzahldivision von
,,numerator´´ durch ,,denominator´´ berechnen,
ohne auf die C-Operatoren % und / zuruckzugreifen. Testen Sie Ihre Implementierung anhand
der Beispiele
1. 13 : 17;
2. 193 : 45;
3. -207 : (-13);
4. 47 : (-45);
5. 459 : 27:
Geben Sie jeweils das Ergebnis mittels
"printf ()" im Hauptprogramm - also in der "main()"-Funktion - aus.
Hinweis:
Statt "%d" kann auch "%i" zur Ausgabe von Ganzzahlen verwendet werden.
Da die Rechenbeispiele konkret gegeben sind, kann man zur Ausgabe z.B.
printf ( " Rest bei Division von 13 durch 17 : %d/n" , mod(13 , 1 7 ) ) ;
verwenden und die Zeile fur die vier anderen Beispiele entsprechend modifziert kopieren.
Ein Programm mit 5 printf ()-Aufrufen reicht dann aus.Dazu muss ich auch die Operatoren while do,while,for,if else benutzen.
Wäre sehr dankbar wenn einer helfen könnte
danke!
-
Wie würdest du es mit Stift und Papier machen?
-
int mod(int a,int b) { int vza=a<0, x; a=abs(a); x=b=abs(b); while( (x+b)<=a ) x+=b; return (vza?-1:1)*(x>a?a:a-x); }