Нахождение остатка от деления переделать в рекурсивную функцию - C (СИ)
Формулировка задачи:
вот есть программа, определяет остаток после деления не использую ф-й деления. Как эту прогу переделать под рекурсивную функцию?
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void main (void)
{
int x,y,zal, ost, i, z_i=0;
clrscr ();
printf ("x=");
scanf("%d", &x);
printf ("y=");
scanf("%d", &y);
if (y==0)
{
printf("Fatall Error!");
}
while (x>0)
x-=y;
ost=x+y;
zal=ost;
if (x<y)
{
ost=0;
}
if (x==0)
{
ost=0;zal=0;}
printf ("\n Osta4a: %d", ost);
printf ("\n Zalushok: 0,");
for(i=0; i<8; i++)
{
zal*=10;
z_i=0;
while(zal>=y)
{
zal-=y;
z_i++;
}
printf ("%d", z_i);
if(zal==0)
break;
}
getch ();
}Решение задачи: «Нахождение остатка от деления переделать в рекурсивную функцию»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
int mod(int n, int d);
int main(void) /* ANSI C89 */
{
printf("%d" "\n", mod(10, 3));
exit(EXIT_SUCCESS);
}
int mod(int n, int d)
{
if (abs(n) < abs(d))
return n;
if (n*d > 0)
return mod(n-d, d);
else if (n*d < 0)
return mod(n+d, d);
fprintf(stderr, "error: division by zero" "\n");
return 0;
}