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