首页 > 代码库 > PAT 乙级 1010 一元多项式求导 (25) C++版

PAT 乙级 1010 一元多项式求导 (25) C++版

1010. 一元多项式求导 (25)

时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard

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

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

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

输入样例:
3 4 -5 2 6 1 -2 0
输出样例:
12 3 -10 1 6 0

注意点:判断输入结束不能以最后一个为0判断,且要仔细考虑输出情况

 1 // 1010.cpp : 定义控制台应用程序的入口点。
 2 //
 3 
 4 #include "stdafx.h"
 5 #include<iostream>
 6 #include<vector>
 7 
 8 using namespace std;
 9 
10 class number
11 {
12 public:
13     int coefficient;//系数
14     int power;//指数
15 };
16 
17 int main()
18 {
19     vector<number> v;
20     number num;
21     char c;
22 
23     while (1)
24     {
25         cin >> num.coefficient >> num.power;
26 
27         v.push_back(num);
28 
29         if ((c = getchar()) == \n)//判断输入结束
30             break;
31     }
32 
33     vector<number>::iterator i, end = v.end();
34 
35     for (i = v.begin(); i != end; i++)
36     {
37         if (i == v.begin()&&i->power!=0)//当不为常数且为第一个元素求导
38             cout << (i->coefficient)*(i->power) << " " << (i->power) - 1;
39         else if (i == v.begin() && i->power == 0)//是常数即仅有一个元素
40             cout << 0 << " " << 0;
41         else
42         {
43             if (i->power != 0)
44                 cout <<" "<< (i->coefficient)*(i->power) << " " << (i->power) - 1;
45         }
46     }
47 
48     return 0;
49 }

 

PAT 乙级 1010 一元多项式求导 (25) C++版