首页 > 其他 > 详细

PAT B1010 一元多项式求导 (25 分)

时间:2019-02-10 15:22:24      阅读:302      评论:0      收藏:0      [点我收藏+]

设计函数求一元多项式的导数。(注:x?n??(n为整数)的一阶导数为nx?n?1??。)

输入格式:

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

输出格式:

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

输入样例:

3 4 -5 2 6 1 -2 0

输出样例:

12 3 -10 1 6 0
#include <stdio.h>
#include <iostream>
const int maxn = 1010;
int poly[maxn] = { 0 };
using namespace std;
int main(){
    int a, exp, count = 0;
    
    while (scanf("%d %d", &a, &exp)!=EOF){
        //
        
        if(exp>0){
        if (count == 0){
            printf("%d", a*exp);
        }
        else{
            printf(" %d", a*exp);
        }
        printf(" %d", exp - 1);
        count++;}
    }
if(count==0){
  printf("0 0");
}
    
    system("pause");
}

注意点:题目输入不固定长度,要用 while (scanf("%d %d", &a, &exp)!=EOF) 读取,最开始用getchar来判断最后一个是不是0来判断输入结束,发现太愚蠢了,题目又没有保证多项式的常数项一定有。由于是高项开始输入因此可以直接读一个输出一个,不用再保存到一个数组中,保存到数组中一定要注意不能只判断poly[i]>0,因为系数会小于0,所以判断条件为!=0。

PAT B1010 一元多项式求导 (25 分)

原文:https://www.cnblogs.com/tccbj/p/10359216.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!