PAT乙级.1010. 一元多项式求导 (25)
来源:互联网 发布:淘宝怎么提高宝贝权重 编辑:程序博客网 时间:2024/06/05 04:25
1010. 一元多项式求导 (25)
题目:
设计函数求一元多项式的导数。(注: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
思路:
- 开两个数组,一个数组存输入,一个数组存结果
int poly[1005]; //poly[i]存储输入的多项式指数为i的系数int ans[1005]; //ans[i]存储结果的多项式指数为i的系数
- 使用while……!=EOF来读入系数和指数
- 由1开始遍历,将求导后结果写入结果数组
- 由MAX开始遍历,将结果数组按格式输出
代码:
version1.0
/*** @tag PAT_B_1010* @authors R11happy (xushuai100@126.com)* @date 2016-07-23 17:28:17-17:56* @version 1.0* @Language C++* @Ranking 180/3621*/#include <cstdio>#include <cstring>#include <cmath>int poly[1005]; //poly[i]存储输入的多项式指数为i的系数int ans[1005]; //ans[i]存储结果的多项式指数为i的系数int main(){ int epo, cof; int cnt = 0; int Max = 1; while (scanf("%d%d", &cof, &epo) != EOF) { poly[epo] = cof; } for (int i = 1; i <= 1000; i++) { if (poly[i]) { if (Max < i) Max = i; ans[i - 1] = i*poly[i]; } } printf("%d %d", ans[Max - 1], Max - 1); for (int i = Max - 2; i >= 0; i--) { if (ans[i]) { printf(" %d %d", ans[i], i); } } printf("\n"); return 0;}
version2.0
/*** @tag PAT_B_1010* @authors R11happy (xushuai100@126.com)* @date 2016-07-23 19:00:17-19:08* @version 2.0* @Language C++* @Ranking 180/3621*/#include <cstdio>#include <cstring>#include <cmath>int main(){ int epo, cof; bool flag = false; while(scanf("%d%d", &cof, &epo) != EOF) { if(cof*epo) { if(flag) printf(" "); else flag = true; printf("%d %d", cof*epo, epo-1); } } if(!flag) printf("0 0");}
收获:
- while……!=EOF格式读数据如果一次性读完再操作在编译运行的时候可能会死循环,但是放到OJ上测试没问题,可以先编写简单测试代码测试
- 输出时要注意考虑特殊情况,比如求导后没有任何非零项,需要输出0 0等等
- 能最快想到并且测试通过的方法就是好方法
0 0
- PAT-乙级-1010. 一元多项式求导 (25)
- PAT乙级.1010. 一元多项式求导 (25)
- PAT乙级1010. 一元多项式求导 (25)
- 1010. 一元多项式求导 (25)-PAT乙级
- PAT乙级 1010. 一元多项式求导 (25)
- PAT乙级1010. 一元多项式求导 (25)
- PAT乙级 1010. 一元多项式求导 (25)
- [PAT乙级]1010. 一元多项式求导 (25)
- pat 乙级 1010. 一元多项式求导 (25)
- 1010. 一元多项式求导 (25)--PAT乙级
- PAT乙级1010. 一元多项式求导 (25)
- PAT乙级1010. 一元多项式求导(25)
- PAT乙级 1010. 一元多项式求导
- PAT 乙级 1010.一元多项式求导
- PAT(乙级)1010. 一元多项式求导
- PAT乙级:1010. 一元多项式求导 (Java)
- PAT乙级 1010. 一元多项式求导
- [PAT-乙级]1010.一元多项式求导
- HOJ 1004题 题解
- 在Android Studio中使用shareSDK进行社会化分享(图文教程)
- JAVA 面向对象之深入构造器
- 求出 N 座大楼的外轮廓线
- 每日一省之————二分查找法demo
- PAT乙级.1010. 一元多项式求导 (25)
- 汇编 二进制预算
- QT QString 很全的使用
- 这才是这个世界上求绝对值最快的方法,温故知新。
- 学生自动排队实例(comparactor比较器)
- Git 工作区、暂存区和版本库
- Mac 像Win一样双开Unity
- mxnet中im2rec.py的小问题
- jQuery源码解读一