PTA:Python解答1010 一元多项式求导/1011 A+B 和 C

1002 写出这个数 (20分)

设计函数求一元多项式的导数。(注:x^n(n为整数)的一阶导数为n*x^(n-1)。)

输入格式:

以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。

输出格式:

以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为 0 0

输入样例:

3 4 -5 2 6 1 -2 0

输出样例:

12 3 -10 1 6 0

解题思路:

这道题使用Python来做也很简单,首先判断是不是“零多项式”,如果不是,就再判断多项式的最后一项是不是0,如果是就直接删除最后两项,最后把其他项按顺序进行计算输出即可。

完整代码:

n = list(map(eval,input().split()))
ls = []
if n[-1] == 0 and len(n) == 2:
    ls = ['0','0']
else:
    if n[-1] == 0:
        del n[-1]
        del n[-1]
    for i in range(1,len(n),2):
        a = n[i]*n[i-1]
        b = n[i] - 1
        ls.append(str(a))
        ls.append(str(b))
print(' '.join(ls))
1011 A+B 和 C (15分)

给定区间[-2^31, 2^31]内的3个整数A、B和C,请判断A+B是否大于C。

输入格式:

输入第 1 行给出正整数 T (≤10),是测试用例的个数。随后给出 T 组测试用例,每组占一行,顺序给出 A、B 和 C。整数间以空格分隔。

输出格式:

对每组测试用例,在一行中输出 Case #X: true 如果 A+B>C,否则输出 Case #X: false,其中 X 是测试用例的编号(从 1 开始)。

输入样例:

4
1 2 3
2 3 4
2147483647 0 2147483646
0 -2147483648 -2147483647

输出样例:

Case #1: false
Case #2: true
Case #3: true
Case #4: false

解题思路:

这道题很简单,直接判断A+B和C的关系,然后输出的时候用for循环输出,用count加一,让case的数增加。

完整代码:

def compare(x,y,z):
   global count
   if x + y > z:
      print('Case #{}: true'.format(count))
   else:
      print('Case #{}: false'.format(count))

n = eval(input())
ls = []
for i in range(n):
   m = list(map(eval,input().split()))
   ls.append(m)
count = 0
for i in ls:
   count += 1
   compare(i[0],i[1],i[2])
点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注