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 }
时间: 2024-10-23 07:20:48

PAT 乙级 1010 一元多项式求导 (25) C++版的相关文章

PAT:1010. 一元多项式求导 (25) 全错

#include<stdio.h> #include<stdlib.h> #include<algorithm> using namespace std; int main() { int arr[1111]; fill(arr,arr+1111,0); int n=0,tmp; while(scanf("%d",&tmp)!=EOF) //存储系数和指数,下标从0开始偶数为系数,奇数为指数 arr[n++]=tmp; for(int i=0

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

#include<stdio.h> #include<stdlib.h> #include<algorithm> using namespace std; int main() { int arr[2111]; fill(arr,arr+2111,0); int n=0,tmp; while(scanf("%d",&tmp)!=EOF) //存储系数和指数,下标从0开始偶数为系数,奇数为指数 arr[n++]=tmp; for(int i=0

PAT:1010一元多项式求导 (25 )

PAT乙级的题目相对于甲级的题目较为简单,但是有时候也会有一两道题很奇怪,具有一定的逻辑难度,这道题就是一个例子. 先看一下题目: 010 一元多项式求导 (25 分)设计函数求一元多项式的导数.(注:x?n??(n为整数)的一阶导数为nx?n?1??.)输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数).数字间以空格分隔.输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数.数字间以空格分隔,但结尾不能有多余空格.注意"零多项式"的指数和

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

#include<iostream> using namespace std; int main() { int index; int expo; cin>>expo>>index; if(index==0){ cout << "0 0"; return 0; } else cout << index*expo <<" "<<index-1; while(cin>>exp

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

设计函数求一元多项式的导数. 输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分隔. 输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数.数字间以空格分隔,但结尾不能有多余空格.注意"零多项式"的指数和系数都是0,但是表示为"0 0". 输入样例: 3 4 -5 2 6 1 -2 0 输出样例: 12 3 -10 1 6 0 思路:一次输入两个数a,b按Ctrl+z结束输入.保存在s[b]中,且令s[b]

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

设计函数求一元多项式的导数.(注:xn(n为整数)的一阶导数为n*xn-1.) 输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分隔. 输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数.数字间以空格分隔,但结尾不能有多余空格.注意“零多项式”的指数和系数都是0,但是表示为“0 0”. 输入样例: 3 4 -5 2 6 1 -2 0 输出样例: 12 3 -10 1 6 0 1 #include <stdio.h> 2 #includ

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

题目链接:http://pat.zju.edu.cn/contests/80/1010 设计函数求一元多项式的导数. 输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分隔. 输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数.数字间以空格分隔,但结尾不能有多余空格. 输入样例: 3 4 -5 2 6 1 -2 0 输出样例: 12 3 -10 1 6 0 代码如下: #include <cstdio> #include <cma

pat(B) 1010. 一元多项式求导

代码: #include<iostream> #include<cstdio> #include<cstring> using namespace std; int Hash[1005]; int vis[1005]; int main() { memset(Hash,0,sizeof(Hash)); memset(vis,0,sizeof(vis)); int i; int c,e; while(scanf("%d%d",&c,&e

PAT 1010. 一元多项式求导

1010. 一元多项式求导 (25) 设计函数求一元多项式的导数.(注:xn(n为整数)的一阶导数为n*xn-1.) 输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分隔. 输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数.数字间以空格分隔,但结尾不能有多余空格.注意"零多项式"的指数和系数都是0,但是表示为"0 0". 输入样例: 3 4 -5 2 6 1 -2 0 输出样例: 12 3 -10 1 6