POJ1555解题报告
2014-01-19 17:19
288 查看
思路:方法很笨,一项一项判断,但有一点需要注意那就是输出的时候的第一项,虽然题目说'+'和'-'前后都有空格,但若第一个字符为负的时候,'-'的前后是没有空格的.
编程语言:C语言
代码如下:
#include<stdio.h>
int main(void)
{
int i, low, high, first;
int num[9];
while (scanf("%d%d%d%d%d%d%d%d%d",
&num[8], &num[7], &num[6], &num[5], &num[4],
&num[3], &num[2], &num[1], &num[0]) != EOF)
{
first = 1;
low = 0;
while (num[low] == 0 && low<9)
low++;
high = 8;
while (num[high] == 0 && high >= 0)
high--;
if (low>high)
{
printf("0\n");
continue;
}
for (i = 8; i >= low; i--)
{
if (num[i] != 0)
{
if (first == 1)
{
first = 0;
if (i == 0) printf("%d", num[i]);
else if (i == 1)
{
if (num[i] == -1) printf("-x");
else if (num[i] == 1)printf("x");
else printf("%dx", num[i]);
}
else
{
if (num[i] == -1)
printf("-x^%d", i);
else if (num[i] == 1)
printf("x^%d", i);
else
printf("%dx^%d", num[i], i);
}
}
else
{
if (num[i]>0)
{
if (num[i] == 1)
{
if (i == 0)
printf(" + 1");
else if (i == 1)
printf(" + x");
else
printf(" + x^%d", i);
}
else
{
if (i == 0)
printf(" + %d", num[i]);
else if (i == 1)
printf(" + %dx", num[i]);
else
printf(" + %dx^%d", num[i], i);
}
}
else
{
if (num[i] == -1)
{
if (i == 0)
printf(" - 1");
else if (i == 1)
printf(" - x^");
else
printf(" - x^%d", i);
}
else
{
if (i == 0)
printf(" - %d", 0 - num[i]);
else if (i == 1)
printf(" - %dx", 0 - num[i]);
else
printf(" - %dx^%d", 0 - num[i], i);
}
}
}
}
}
printf("\n");
}
system("pause");
return 0;
}
相关文章推荐
- POJ 2513 解题报告
- POJ 1753 Flip Game (递归枚举)解题报告
- POJ 1838 解题报告
- POJ - 1442 Black Box解题报告(求第k小的数 堆)
- poj-openjudge 1042:Moles 解题报告
- POJ1905解题报告
- poj 2532 stars解题报告
- LA-3883 & POJ-3518 Prime Gap 解题报告
- POJ-3087 Shuffle'm Up 解题报告
- Polya 定理 (附POJ 1286 Necklace of Beads 解题报告)
- POJ 2243解题报告
- POJ 2352 stars【树状数组】解题报告
- POJ 2918 Tudoku解题报告(复杂模拟)
- poj2051解题报告(优先队列)
- POJ 3678 解题报告
- poj 1182 食物链(并查集)解题报告(转)
- POJ 1080 解题报告
- poj 1046 Color Me Less 解题报告
- POJ1009 Edge Detection 解题报告
- poj 1118 2606解题报告