B1010.一元多项式求导

时间:2022-07-01 15:50:55

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;
}