数据结构练习 02-线性结构1. 一元多项式求导 (25)

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

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

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

输入样例:

3 4 -5 2 6 1 -2 0

输出样例:

12 3 -10 1 6 0
 
#include<iostream>
#include<string>
using namespace std;
typedef struct Lnode{
    int coe;
    int index;
    struct Lnode *next;
}pol;
int main(){
    int coe,index,n=0;
    pol *head=new pol;
    pol *p=new pol,*q;
    head->next=p;
     while(cin>>coe>>index)
    {

        p->coe=coe;
        p->index=index;
        n++;
        q=p;
        p= new pol;
        q->next=p;
    }
    q->next=NULL;
    delete p;
    p=head->next;
    while(p!=NULL){
        p->coe=p->coe*p->index;
        if(p->index!=0)
            p->index=p->index-1;
        p=p->next;
    }
    p=head->next;
    while(p!=NULL){
        if(p->next!=NULL && p->index==0 && p->next->index==0){
            q=p->next;
            p->next=q->next;
            delete q;
        }
        if(p->next!=NULL &&  p->next->coe==0){
            q=p->next;
            p->next=q->next;
            delete q;
        }
        p=p->next;
    }
    p=head->next;
    while(p!=NULL){
        cout<<p->coe<<" "<<p->index;
        if(p->next!=NULL){
            cout<<" ";
        }
        p=p->next;
    }
    return 0;
}

经过19次提交,总算是成功了。读懂题很重要啊

时间: 2024-10-12 02:34:23

数据结构练习 02-线性结构1. 一元多项式求导 (25)的相关文章

PAT线性结构_一元多项式求导、按给定步长反转链表、出栈序列存在性判断

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

pat02-线性结构2. 一元多项式求导 (25)

02-线性结构2. 一元多项式求导 (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 设计函数求一元多项式的导数.(注:xn(n为整数)的一阶导数为n*xn-1.) 输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分隔. 输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数.数字间以空格分隔,但结尾不能有多余空格.注意“零多项式”的指数和系数都是0,但是表示为“0 0”.

Programming Ability Test学习 02-线性结构2. 一元多项式求导 (25)

02-线性结构2. 一元多项式求导 (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 设计函数求一元多项式的导数.(注:xn(n为整数)的一阶导数为n*xn-1.) 输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分隔. 输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数.数字间以空格分隔,但结尾不能有多余空格.注意“零多项式”的指数和系数都是0,但是表示为“0 0”.

02-线性结构1. 一元多项式求导 (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 import java.io.BufferedReader

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

1010. 一元多项式求导 (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 设计函数求一元多项式的导数.(注:xn(n为整数)的一阶导数为n*xn-1.) 输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分隔. 输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数.数字间以空格分隔,但结尾不能有多余空格.注意"零多项式"的指数和系数都是0,但是表示为"

02-线性结构2. 一元多项式求导

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

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) 全错

#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

一元多项式求导 (25)

这道题里有个坑,如果某部分求导后是0,这一部分就不输出,如果最后得到的整个多项式没有非零项,那就输出0 0 输入样例: 3 4 -5 2 6 1 -2 0 输出样例: 12 3 -10 1 6 0 输入样例: 5 0 输出样例: 0 0 下面的这种实现方法,每输入两个数,就处理两个数,不用开辟额外的数组去存放数据,比较省空间 #include <stdio.h> int main(void) { int n, m; int a = 0; //当bool变量来用,判断要输出是不是只有0 0 do