P1067 [NOIP 2009 普及组] 多项式输出

思路&逻辑

        本体的原理十分简单:给出若干个系数,并依此列出多项式.如果优化的好,寥寥几行代码便可完成,本体要求是是对于判断的运用,这里有一个不需要数组的方法:输入一个输出一个.

        下面先放出核心代码,然后对于其中判断词条逐一解释:

#include<bits/stdc++.h>
using namespace std;
int a,n;
int main(){
	cin>>n;
	for(int i=n;i>=0;i--){
		cin>>a;
		if(a){
			if(i<n&&a>0)cout<<"+";
			if(abs(a)>1||i==0)cout<<a;
			if(a==-1&&i)cout<<"-";
			if(i>0)cout<<"x";
			if(i>1)cout<<"^"<<i;
		}
	}
	return 0;
}

        对于if(a)(如果a≠0)内的若干判断词条:

                1.如果此时输出的不是第一项(即最高次数项)且系数为正数,输出+.

                2.如果此时系数绝对值大于1(即系数不需要省略)或者输出的为常数项,输出此数.

                3.如果此时系数为-1(需要省略系数但保留负号)且i≠0(即输出的是非常数项)输出负号.

                4.如果输出的是非常数项则输出"x"

                5.如果输出的是非常数项且x的次数非1则输出"^i"(i为x的次数).

        完。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值