#代码量有点长,但是思路简单、易于理解
参考代码:

#输入

a=int(input())

bb=list(map(int,input().strip().split()))

#列一个表,存储多项式的次方

s=bb[:]

ls=[i for i in range(a,1,-1)]

#第一个数不用考虑’+‘号

if s[0]:

    if s[0]==1:

        print(end='x^')

        print(ls[0],end='')

    elif s[0]==-1:

        print(end='-x^')

        print(ls[0],end='')

    else:

        print(s[0],end='x^')

        print(ls[0],end='')

#从第2-》倒数第3个,情况相同

        #注意:特殊情况:系数为1时不显示1,只显示x^,

        #当0时不操作(跳过)

for i in  range(1,a-1):

    if s[i]==0:

        continue

    elif s[i]>0:

        if s[i]==1:

            print('+',end='x^')

            print(ls[i],end='')

        else:    

            print('+'+str(s[i]),end='x^')

            print(ls[i],end='')           

    else :   #是s[i]<0

        if s[i]==-1:

            print('-',end='x^')

            print(ls[i],end='')

        else:    

            print('-'+str(abs(s[i])),end='x^')

            print(ls[i],end='')            

#倒2个不同,系数+x,特殊情况:系数为1时不显示1

if s[-2]:

    if s[-2]>0:

        if s[-2]==1:

            print('+x',end='')

        else:

            print('+'+str(abs(s[-2]))+'x',end='')

    else:  #s[-2]<0

        if s[-2]==-1:

            print('-x',end='')

        else:

            print('-'+str(abs(s[-2]))+'x',end='')  

#是多少直接相+,或相-

            #相加(补+号)

            #相减(直接输出)

if s[-1]:

    if s[-1]>0:

        print('+'+str(s[-1]))

    else: #s[-1]<0

        print(s[-1])


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论