題目描述:
設計函數求一進制多項式的導數。(注:xn (n為整數)的一階導數為nxn−1 。)
輸入格式:
以指數遞降方式輸入多項式非零項系數和指數(絕對值均為不超過 1000 的整數)。數字間以空格分隔。
輸出格式:
以與輸入相同的格式輸出導數多項式非零項的系數和指數。數字間以空格分隔,但結尾不能有多餘空格。注意“零多項式”的指數和系數都是 0,但是表示為 0 0。
輸入樣例:
3 4 -5 2 6 1 -2 0
輸出樣例:
12 3 -10 1 6 0
思路分析:
每個多項式都會有指數和系數,求導後仍然會有指數和系數,故用結構體來表示每個多項式。
求導後系數=原系數*原指數,求導後指數=指數減一。求導後按題目要求輸出
代碼實作:
#include<stdio.h>
#include<math.h>
#include<string.h>
struct string{
int x;//系數
int y;//指數
}str[10010];
int main(){
int pos = 0;
int isZero = 1;//用于判斷指數是否為0
while(scanf("%d %d",&str[pos].x,&str[pos].y)!=EOF){
pos++;
}
for(int i=0;i<pos;i++){
if(str[i].y!=0){//指數不為0
str[i].x = str[i].x * str[i].y;//求導後的系數放在x
str[i].y--;
if(i!=0) printf(" ");//控制空格輸出
printf("%d %d",str[i].x,str[i].y);
isZero = 0;
}
}
if(isZero){//指數為0,則輸出“0 0”
printf("0 0");
}
return 0;
}