Python 添加到多项式

Python 添加到多项式,python,Python,在这段代码中有四个测试用例。三个测试用例已成功拍摄,但第四个测试用例未获得预期输出。请帮帮我 我在第4个测试用例中得到了0x^3作为输出,但预期的输出为0 加两个多项式 给定两个多项式A和B,编写一个程序,将给定的两个多项式A和B相加 输出 打印多项式A和B的加法 如果多项式次数为零,且常数项也为零,则只需打印0来表示多项式 对于术语Cix^Pi,如果术语Ci的系数为1,只需打印x^Pi而不是1x^Pi。解释 我们需要所有的测试用例都能在代码运行时出现。我想要所有测试用例的精确输出 下面的url

在这段代码中有四个测试用例。三个测试用例已成功拍摄,但第四个测试用例未获得预期输出。请帮帮我

我在第4个测试用例中得到了0x^3作为输出,但预期的输出为0

加两个多项式

给定两个多项式A和B,编写一个程序,将给定的两个多项式A和B相加

输出

打印多项式A和B的加法

如果多项式次数为零,且常数项也为零,则只需打印0来表示多项式

对于术语Cix^Pi,如果术语Ci的系数为1,只需打印x^Pi而不是1x^Pi。解释

我们需要所有的测试用例都能在代码运行时出现。我想要所有测试用例的精确输出

下面的url链接中有问题和测试用例的输入和输出

def check_polinom(polinom):
选中=[]
而polinom:
tmp=polinom.pop(0)
如果polinom:
对于范围内的i(len(polinom)-1,-1,-1):
如果polinom[i][0]==tmp[0]:
tmp[1]+=polinom[i][1]
流行音乐(一)
选中。追加(tmp)
退票
def添加策略(策略1、策略2):
添加=[]
而pol_1或pol_2:
如果Polu_1:
tmp=pol_1.pop(0)
对于范围内的i(len(pol_2)):
如果pol_2[i][0]==tmp[0]:
tmp[1]+=pol_2[i][1]
pol_2.pop(一)
打破
其他:
tmp=pol_2.pop(0)
added.append(tmp)
added.sort(reverse=True)
返回(已添加)
def print_polinom(polinom):
s=“”
如果polinom:
如果polinom[0][1]<0:
s+='-'
polinom[0][1]=-polinom[0][1]
如果polinom[0][1]==1:
如果polinom[0][0]==0:
s+=str(polinom[0][1])
elif polinom[0][0]==1:
s+='x'
其他:
s+='x^'+str(polinom[0][0])
其他:
如果polinom[0][0]==1:
s+=str(polinom[0][1])+'x'
elif polinom[0][0]==0:
s+=str(polinom[0][1])
其他:
s+=str(polinom[0][1])+'x^'+str(polinom[0][0])
polinom.pop(0)
对于polinom中的el:
如果el[1]==0:
持续
elif el[1]<0:
s+='-'
el[1]=-el[1]
其他:
s++='+'
如果el[1]==1:
如果el[0]==0:
s+=str(el[1])
elif el[0]==1:
s+='x'
其他:
s+='x^'+str(el[0])
其他:
如果el[0]==1:
s+=str(el[1])+'x'
elif el[0]==0:
s+=str(el[1])
其他:
s+=str(el[1])+'x^'+str(el[0])
印刷品
def input_data():
尽管如此:
尝试:
n=int(输入())
打破
除:
打印('输入整数N')
持续
a=列表()
i=1
当n>i-1时:
尝试:
tmp=list(映射(int,(input()).split())
如果len(tmp)!=2:
打印('输入两个空格分隔的整数')
持续
a、 附加(tmp)
i+=1
除:
打印('输入两个空格分隔的整数')
归还
a=检查polinom(输入数据())
b=检查策略(输入数据())
c=添加策略(a,b)
印刷政策(c)

您的代码似乎没有清除0系数。应在处理过程中添加一个附加阶段。一旦得到了多项式的最终系数,就应该进行两次调整。您已经描述了一个,它将系数为1的项从形式1x转换为简单的x。另一个是当你把0x变成零的时候。然后你只需要小心地输出一些东西,所以你不应该把每一个术语都变成一无所有。这就是为什么有一个描述将其表示为0

因此,最简单的方法是:

  • 添加一个函数以检查多项式是否具有所有零系数:is_zero_polinom
  • 在print_polinom中执行以下操作:
  • if is_zero_polinom(polinom):
    打印('0')
    返回
    

    您好,上一个测试用例的结果是什么?先生,我在第四个测试用例中得到了0x^3作为输出,但预期输出为0。任何人请帮助meSir,我可以将此代码放入我的代码中,先生。先生,如果你不是我的,请把这个函数放在代码中,然后发布整个c
    def check_polinom(polinom):
                checked = []
                while polinom:
                        tmp = polinom.pop(0)
                        if polinom:
                                for i in range(len(polinom)-1, -1, -1):
                                        if polinom[i][0] == tmp[0]:
                                                tmp[1] += polinom[i][1]
                                                polinom.pop(i)
                        checked.append(tmp)
                return checked
        
        
        def add_polinoms(pol_1, pol_2):
                added = []
                while pol_1 or pol_2:
                        if pol_1:
                                tmp = pol_1.pop(0)
                                for i in range(len(pol_2)):
                                        if pol_2[i][0] == tmp[0]:
                                                tmp[1] += pol_2[i][1]
                                                pol_2.pop(i)
                                                break
                        else:
                                tmp = pol_2.pop(0)
        
        
                        added.append(tmp)
                added.sort(reverse=True)
                return(added)
        
        
        def print_polinom(polinom):
                s = ''
                if polinom:
                        if polinom[0][1] < 0:
                                s += '-'
                                polinom[0][1] = -polinom[0][1]
                        if polinom[0][1] == 1:
                                if polinom[0][0] == 0:
                                        s += str(polinom[0][1])
                                elif polinom[0][0] == 1:
                                        s += 'x'
                                else:
                                        s += 'x^' + str(polinom[0][0])
                        else:
                                if polinom[0][0] == 1:
                                        s += str(polinom[0][1]) + 'x'
                                elif polinom[0][0] == 0:
                                        s += str(polinom[0][1])
                                else:
                                        s += str(polinom[0][1]) + 'x^' + str(polinom[0][0])                        
                        polinom.pop(0)
                for el in polinom:
                        if el[1] == 0:
                                continue
                        elif el[1] < 0:
                                s += ' - '
                                el[1] = -el[1]
                                
                        else:
                                s += ' + '
                        if el[1] == 1:
                                if el[0] == 0:
                                        s += str(el[1])
                                elif el[0] == 1:
                                        s += 'x'
                                else:
                                        s += 'x^' + str(el[0])
                        else:
                                if el[0] == 1:
                                        s += str(el[1]) + 'x'
                                elif el[0] == 0:
                                        s += str(el[1])
                                else:
                                        s += str(el[1]) + 'x^' + str(el[0])
                print(s)
        
        
        def input_data():
                while True:
                        try:
                                n = int(input())
                                break
                        except:
                                print('enter an integer N')
                                continue
                a = list()
                i = 1
                while n > i-1:
                        try:
                                tmp = list(map(int,(input()).split()))
                                if len(tmp) != 2:
                                        print('enter two space separated integers')
                                        continue
                                a.append(tmp)
                                i += 1
                        except:
                                print('enter two space separated integers')
        
        
                return a
        
        
        
        
        a = check_polinom(input_data())
        b = check_polinom(input_data())
        c = add_polinoms(a,b)
        print_polinom(c)
    
    if is_zero_polinom(polinom):
       print('0')
       return
    <here comes the current code>