PTA: PAT (Basic Level) Practice 1010

一元多项式求导

题目描述:

设计函数求一元多项式的导数. (注: xnx^{n} (n)(n) 为整数的一阶导数为 nxn1nx^{n-1}. )

输入格式:

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

输出格式:

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

输入样例:

1
3 4 -5 2 6 1 -2 0

输出样例:

1
12 3 -10 1 6 0

C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/* PTA 1010 一元多项式求导
* 2022/07/24
* */

#include <iostream>

using namespace std;

int main() {
int a, b;
cin >> a >> b;
if (b == 0) {
cout << "0 0";
return 0;
}
else
cout << a * b << " " << b - 1;

while (cin >> a >> b)
if (b != 0)
cout << " " << a * b << " " << b - 1;
return 0;
}

Java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/// 1010 一元多项式求导
/// 2023/01/06

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int a, b;
a = input.nextInt();
b = input.nextInt();
if (b == 0) {
System.out.print("0 0");
return;
} else
System.out.printf("%d %d", a * b, b - 1);
while (input.hasNextInt()) {
a = input.nextInt();
b = input.nextInt();
if (b != 0)
System.out.printf(" %d %d", a * b, b - 1);
}

}
}

简要解析:

这道题没什么难度, 在此不做过多讲解了, 值得注意的是输出格式, 所以, 要对第一个输入进行特殊处理.

写在最后:

在学习数据结构的时候, 曾在课本上遇到过类似的问题, 当时课本上给出的代码是使用链表实现的, 同时课本上也实现了诸如多项式的加减乘等算法.

2023-02-18 
IP属地: 曹县

PTA: PAT (Basic Level) Practice 1010
https://dengwuli.github.io/2023/02/18/PTA 题解/PAT (Basic Level) Practice 1010/
作者
DengWuLi
发布于
2023年2月18日
更新于
2023年7月14日
许可协议