Нахождение остатка от деления переделать в рекурсивную функцию - 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;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.8 из 5
Похожие ответы