c30 := [n / 30]
остаток := n % 30
Теперь смотрим, один 30-местный стоит столько же, сколько и 4.2/1.6 = 2.625 7-местных.если остаток > 14 то
c30 := c30+1
остаток := 0
конец если
c7 := [остаток / 7]
остаток := остаток % 7
если остаток > 4 то
c7 := c7 + 1
остаток := 0
конец если
если остаток = 4 то
c4 := 1
c3 := 0
иначе если остаток > 0 то
с4 := 0
c3 := 1
конец если
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <math.h>
#define DBL_EPSILON 2.2204460492503131e-16
int main(int argc, char const *argv[])
{
int degree;
double *poly, term;
printf("Enter degree of polynomial (1-10):", i);
scanf("%d", °ree);
// calloc заполняет выделяемую облать нулями
poly = calloc(degree+2, sizeof(double));
for (int i = degree; i >= 0; i--) {
printf("Enter x^%d term:", i);
scanf("%f", &term);
poly[degree+2] += term;
poly[degree] -= term/2;
}
printf("Result: ");
for (int i = degree+2; i >= 0; i--) {
// Выводим только ненулевые члены
if (abs(poly[i]) > DBL_EPSILON) {
// Добавляем плюс для положительных коэффициентов
if (poly[i] > 0) {
printf("+");
}
printf("%.4G", poly[i]);
// Выводим только ненулевые степени
if (i > 0) {
printf("*x^%d", i);
}
}
}
printf("\n");
// Прибраться за собой - хороший тон
free(poly);
getch();
return 0;
}