Нахождение остатка от деления переделать в рекурсивную функцию - 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д