zoukankan      html  css  js  c++  java
  • 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



    #include<iostream>
    #include<vector>
    using namespace std;
    struct p{
        int xs;//求导前系数
        int zs;//求导前指数
        int xs1;//求导后系数
        int zs1;//求导后指数
    }; 
    int main(){
        p a[1000];//系数与指数不超过1000
        vector<int> b(1000);
        int m=0;
        while(1){
            cin>>b[m];
            if(b[m]==0&&m%2)break;//因为输入时是指数递减方式,指数为零时这个项就为0,输入结束跳出
            m++;
        }
        int k=1;//k为1时输入时系数,为-1时输入为指数
        int j=0;
        for(int i=0;i<m+1;i++){
            if(k==1){
                a[j].xs=b[i];
                k*=-1;
            }
            else if(k==-1){
                a[j].zs=b[i];
                a[j].zs1=a[j].zs-1;
                a[j].xs1=a[j].zs*a[j].xs;
                j++;
                k*=-1;
            }
        }
        if(a[0].zs==0)cout<<"0 0";//对0多项式 的输出
        int y=0;
        for(int i=0;i<j;i++){//系数为零数就为0,不输出,要求结尾没有空格
            if(a[i].xs1!=0&&y==0){
                cout<<a[i].xs1<<" "<<a[i].zs1;
                y=1;
            }
            else if(a[i].xs1!=0&&y==1){
                cout<<" "<<a[i].xs1<<" "<<a[i].zs1;
            }
        
        } 
    }
  • 相关阅读:
    idea 文件名乱码问题的解决
    <context:component-scan>使用说明
    <mvc:annotation-driven />
    mac下的一些常识
    centos下的防火墙配置
    mac 下安装nginx
    centos下安装nginx
    Centos-统计文件或目录占用磁盘空间-du
    Centos-查看磁盘分区占用情况-df
    Centos-重定向方式打包、备份、还原、恢复工具-cpio
  • 原文地址:https://www.cnblogs.com/fromzore/p/9534142.html
Copyright © 2011-2022 走看看