输入格式:
以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。
输出格式:
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为 0 0。
输入样例:
3 4 -5 2 6 1 -2 0
输出样例:
12 3 -10 1 6 0
代码:
初出茅庐,请多指教!
代码一
#include<stdio.h>
int main(){
int a[1000],b[1000];
int i=0;
while(scanf("%d",&a[i])!=EOF){
i++;
}
if(a[1]==0){
printf("0 0");
return 0;
}
int alen=i;
int j=0;
for(i=0;i<alen;i++){
if(i%2==0){
b[j]=a[i]*a[i+1];
if(b[j]==0) break;
}
else{
if(a[i]==0) break; //三刷发现,这个条件不可能成立,因为如果等于0,在上个i的时候就肯定发现了。
else b[j]=a[i]-1;
}
j++;
}
int blen=j;
for(i=0;i<blen;i++){
printf("%d",b[i]);
if(i<blen-1) printf(" ");
}
return 0;
}
代码二
#include<stdio.h>
int main(){
int a,b;
int flag = 0;
while(scanf("%d%d",&a,&b)!=EOF){
if(b!=0){
if(flag==1) printf(" ");
printf("%d %d",a*b,b-1);
flag = 1;
}
}
if(flag==0) printf("0 0");
return 0;
}
代码一是常规思路,明显代码二巧妙。代码二是我去年9月份写的,怎么我变笨了呢?
解答:不是变笨。是本来就没这么聪明。今天是22年11月28日,又三刷了这道题,根本想不起代码二的思路,并且发现这个思路是csdn上某个高手的,去年的我肯定看了这个程序,自己学着写下来的。