算法题:Python实现多项式加法,减法,乘法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_36499794/article/details/102764696

 一. 代码

dic1 = {}
dic2 = {}



def __input():
    tag = 1
    while True:
        var = input("选择一种命令:")
        if var == '?':
            print("请输入系数和指数,当指数和系数都不为0时继续,任一为0时结束输入")
            while True:
                xs = input("请输入系数:")
                zh = input("请输入指数:")
                if int(xs)==0 or int(zh) ==0:
                    if tag == 1:
                        i=0
                        for k in dic1:
                            i += 1
                            if dic1[k] > 0 and i == 1:
                                print('%sx^%s' % (dic1[k], k), end=' ')
                            elif dic1[k] < 0:
                                print('%sx^%s' % (dic1[k], k), end=' ')
                            else:
                                print('+' + '%sx^%s' % (dic1[k], k), end=' ')
                        print('\n')

                    else:
                        i = 0
                        for k in dic2:
                            i += 1

                            if dic2[k] > 0 and i==1:
                                print('%sx^%s' % (dic2[k], k), end=' ')
                            elif dic2[k] < 0:
                                print('%sx^%s' % (dic2[k], k), end=' ')
                            else:
                                print('+'+'%sx^%s' % (dic2[k], k), end=' ')
                        print('\n')
                    tag = -tag
                    break
                if tag == 1:
                    dic1[int(zh)] = int(xs)
                else:
                    dic2[int(zh)] = int(xs)
        if var == '+':
            for k in dic2:
                if k in dic1:
                    dic1[k]+=dic2[k]
                else:
                    dic1[k] = dic2[k]
            resul(dic1)

        if var == '-':
            for k in dic2:
                if k in dic1:
                    dic1[k] -= dic2[k]
                else:
                    dic1[k] = -dic2[k]
            resul(dic1)

        if var == '*':
            dic = {}
            for k1 in dic1:
                for k2 in dic2:
                    if(k1 + k2 not in dic) and (k1+k2 not in dic):
                        dic[k1 + k2] = dic1[k1] * dic2[k2]
                    else:
                        dic[k1 + k2] += dic1[k1] * dic2[k2]
            resul(dic)



def resul(dic):
    i = 0
    for k in dic:
        i+=1
        if dic[k] > 0 and i == 1:
            print('%sx^%s' % (dic[k], k), end=' ')
        elif dic[k] < 0:
            print('%sx^%s' % (dic[k], k), end=' ')
        else:
            print('+' + '%sx^%s' % (dic[k], k), end=' ')
    print('\n')
    dic1 = {}
    dic2 = {}


if __name__ == '__main__':
    print("请输入一个合适的命令,命令如下:")
    print("?:提示")
    print("+:相加")
    print("-:相减")
    print("*:相乘")
    __input()


二. 运行结果

猜你喜欢

转载自blog.csdn.net/qq_36499794/article/details/102764696