B1010.一元多项式求导

12/25

#include<bits/stdc++.h>
using namespace std;

void solve(){
    int A,B,coef,exp;
    cin>>A>>B;
    if(B==1) cout<<A;
    else if(B==0) cout<<0;
    else{
        coef=A*B;exp=B-1;
        cout<<coef<<" "<<exp;
    }
    while(cin>>A>>B){
        //1.B==1,only print A
        //2.B==0,print 0
        //3.B!=1&&B!=0, print coef,exp :coef=A*B,exp=B-1;
        if(B==1) cout<<" "<<A;
        else if(B==0) cout<<" "<<0;
        else{
            coef=A*B;exp=B-1;
            cout<<" "<<coef<<" "<<exp;
        }
    }
}

int main(){
    solve();
    return 0;
}

经审查,是题目理解方面出现偏差。
比如,6x,在经过求导之后的coef,exp为6,0。应该全部输出。而-2这类常数项(如果常数项在首部,那就输出0 0,如果不在首部,那就什么也不输出。)
这类题重要的是挖掘题目的隐藏条件。
测试用例

3 4 -5 2 6 1 -2 0

输出样例

1 2 3 -10 1 6 0

测试用例

6 0

输出样例

0 0

测试用例

6 1 6 0

输出样例

6 0

改进后代码
25/25

#include<bits/stdc++.h>
using namespace std;

void solve(){
    int A,B,coef,exp;
    cin>>A>>B;
    if(B==1) cout<<A;
    else if(B==0) {cout<<0<<" "<<0;return;}
    else{
        coef=A*B;exp=B-1;
        cout<<coef<<" "<<exp;
    }
    while(cin>>A>>B){
        if(B!=0){
            coef=A*B;exp=B-1;
            cout<<" "<<coef<<" "<<exp;
        }
    }
}

int main(){
    solve();
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/MarkKobs-blog/p/10550107.html