C/C++ Zoj1720 Polynomial Showdown(多项式摊牌)

博客介绍了如何处理ZOJ1720题目的多项式输出,强调了输出规则,包括项的递减排列、指数表示、非零系数项的处理等。博主分享了错误程序导致的超时问题,并提供了优化后的C语言解决方案,该方案能正确处理输入并避免无限循环。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、题目大意:

      每行输入9个数,这9个数是对应一元多项式的系数。然后,输出对应的一元多项式。

      (1)术语必须按递减顺序输出,就是说一元多项式需要从高指数项往低指数项输出;

      (2)指数应出现在插入符号“^”之后;

      (3)常数项仅显示为常数(指一元多项式的最后一项,此时指数为0);

      (4)只应出现具有非零系数的项,除非所有项都具有零系数,在这种情况下应出现常数项;

      (5)唯一的空格应该是+或者 - 运算符两侧的单个空格;

      (6)如果一元多项式最高项系数是正数的,那么在它之前不应该有其它符号; 负数应以减号开头,如-7x ^ 2 + 30x + 66。

      (7)系数为负数的,前面不能有“+”号。 也就是说,输出应该是x ^ 2  -  3x,而不是x ^ 2 + -3x;

      (8)常数1和-1应仅作为常数项出现。 也就是说,输出应显示为-x ^ 3 + x ^ 2 + 3x  -  1,而不是-1x ^ 3 + 1x ^ 2 + 3x ^ 1  -  1。

二、思路:a1x^8 + a2x^7 + a3x^6 + …. + a7x^2 + a8x + a9

      (1)存储方式:用数组arr[10]存储每行输入的9个整数;

      (2)输出:A.首先输出系数前面的"+"或者"-"运算符,同时考虑符号两侧是否需要空格;

                          B.接着输出系数的绝对值,考虑等于1时,出了常数项外,其它项要省略1;

                          C.输出"x^"或"x",同时考虑指数大于1时,需要输出指数,等于1时,不需要输出;(常数项没有x)

                          D.当全部为0时,虽然此时是常数,结果为0,但最好写进去;

三、错误程序:超时(Time Limit Exce

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值