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])