題目
鏈接:PAT (Basic Level) Practice 1010 一元多項(xiàng)式求導(dǎo)
設(shè)計(jì)函數(shù)求一元多項(xiàng)式的導(dǎo)數(shù)瞬测。(注:(n為整數(shù))的一階導(dǎo)數(shù)為。)
輸入格式:
以指數(shù)遞降方式輸入多項(xiàng)式非零項(xiàng)系數(shù)和指數(shù)(絕對(duì)值均為不超過(guò) 1000 的整數(shù))。數(shù)字間以空格分隔。
輸出格式:
以與輸入相同的格式輸出導(dǎo)數(shù)多項(xiàng)式非零項(xiàng)的系數(shù)和指數(shù)。數(shù)字間以空格分隔涕烧,但結(jié)尾不能有多余空格。注意“零多項(xiàng)式”的指數(shù)和系數(shù)都是 0汗洒,但是表示為
0 0
议纯。輸入樣例:
3 4 -5 2 6 1 -2 0
輸出樣例:
12 3 -10 1 6 0
思路
- 用兩個(gè)數(shù)組存放輸入數(shù)據(jù);
- 讀入數(shù)據(jù)溢谤,當(dāng)讀到回車時(shí)輸入結(jié)束瞻凤;
- 當(dāng)僅有指數(shù)為0項(xiàng)時(shí)輸出
0 0
憨攒; - 指數(shù)為0項(xiàng)的導(dǎo)數(shù)為0,指數(shù)不為0項(xiàng)導(dǎo)數(shù)的指數(shù)為原指數(shù)減1阀参,系數(shù)為原系數(shù)乘原指數(shù)肝集;
- 注意空格輸出。
代碼
#include<stdio.h>
int main()
{
int coef[1001] = {0}, expo[1001] = {0};
int i; //i在前面定義蛛壳,因?yàn)楹竺嬉玫? for(i = 0; i < 1001; i++){
scanf("%d %d", &coef[i], &expo[i]);
if(getchar() == '\n'){ //當(dāng)讀到回車時(shí)輸入結(jié)束
break;
}
}
if(expo[0] == 0 && expo[1] == 0){ //當(dāng)多項(xiàng)式指數(shù)最大為0且無(wú)指數(shù)小于0時(shí)
printf("0 0");
}else{
for(int j = 0; j <= i; j++){
if(expo[j] == 0){ //當(dāng)指數(shù)為0時(shí)杏瞻,該項(xiàng)導(dǎo)數(shù)為0
coef[j] = 0;
}
else{ //當(dāng)指數(shù)不為0時(shí),該項(xiàng)導(dǎo)數(shù)的指數(shù)為原指數(shù)減1炕吸,系數(shù)為原系數(shù)乘原指數(shù)
coef[j] = coef[j] * expo[j];
expo[j] = expo[j] - 1;
}
}
int flag = 0; //控制空格的輸出
for(int k = 0; k <= i; k++){
if(coef[k]){
if(flag == 0){
flag = 1;
}else{
printf(" ");
}
printf("%d %d", coef[k], expo[k]);
}
}
}
return 0;
}
---END---
其它相關(guān)問(wèn)題
PAT-B 1006 換個(gè)格式輸出整數(shù)(C語(yǔ)言)
PAT-B 1007 素?cái)?shù)對(duì)猜想(C語(yǔ)言)
PAT-B 1008 數(shù)組元素循環(huán)右移問(wèn)題(C語(yǔ)言)
PAT-B 1009 說(shuō)反話(C語(yǔ)言)