sairate c9f8710d03 sairate<sairate@sina.cn>
Signed-off-by: sairate <sairate@sina.cn>
2025-07-12 16:05:52 +08:00

55 lines
1.1 KiB
C

#include <stdio.h>
int n;
int p[102] = {0};
int fileread()
{
int i;
FILE *fp;
fp = fopen("poly.in", "r");
fscanf(fp, "%d", &n);
for (i = n; i >= 0; i--)
fscanf(fp, "%d", &p[i]);
fclose(fp);
return;
}
int work()
{
int i, first = 1;
FILE *fp;
fp = fopen("poly.out", "w");
for (i = n; i >= 0; i--)
{
if (p[i] == 0) continue;
if (first == 1)
{
if (p[i] == 1) fprintf(fp, "x^%d", i);
else if (p[i] == -1) fprintf(fp, "-x^%d", i);
else fprintf(fp, "%dx^%d", p[i], i);
first = 0;
}
else
{
if (p[i] == 1) fprintf(fp, "+");
else if (p[i] == -1) fprintf(fp, "-");
else if (p[i] > 0) fprintf(fp, "+%d", p[i]);
else if (p[i] < 0) fprintf(fp, "%d", p[i]);
if (i == 1) fprintf(fp, "x");
else if (i == 0) {if (abs(p[i]) == 1) fprintf(fp, "1");}
else fprintf(fp, "x^%d", i);
}
}
fprintf(fp, "\n");
fclose(fp);
return;
}
int main()
{
fileread();
work();
return 0;
}