разложить дробь на цепную дробь, например 1071 делим на 462, при разложении учитываем значения отличные от 1, и записываем(метод Евклида) получим 2 3 7
но в моем коде не пойму где ошибка выводит 2 3 6
но если взять другую дробь например 105 на 38 получаем 2 1 3 4 2, как и должно быть
Код:
#include<stdio.h>
#include<math.h>
#include <conio.h>
void evklid(int a, int b)
{ int i=0,j=0,c=0;
while (a!=b)
{ if (a>b)
{ c=a;
a-=b;
i+=1;
if (a<=b)
{ if (a==1)
{ j+=1;
printf("\nq%d= %d",j,c);
}
else
{ j+=1;
printf("\nq%d= %d",j,i);
}
i=0;
}
}
else
{ c=b;
b-=a;
i+=1;
if (b<=a)
{ if (b==1)
{ j+=1;
printf("\nq%d= %d",j,c);
}
else
{ j+=1;
printf("\nq%d= %d",j,i);
}
i=0;
}
}
}
}
int main()
{ int a,b;
scanf("%d", &a);
scanf("%d", &b);
evklid(a,b);
getch();
return 0;
}