題目來自於PAT B1010
題解
#include <cstdio> int main(int argc, char const *argv[]) { int a,b; // 係數a,指數b int count = 0; // 記錄共有多少個求導後的非零項 while(scanf("%d %d", &a, &b) != EOF){ if (a != 0 && b != 0) { // 指數不爲0且係數不爲0 // 求導後該項纔不會爲0 if (count != 0) printf(" "); // 若是是第一個元素,開頭無需空格 printf("%d ", a * b); // 係數 printf("%d", b - 1); // 指數 count++; } } if (count == 0) { // 說明全部的項求導後都爲0,則輸出0 0 printf("0 0"); } return 0; }
核心思路講解
算法筆記上對於此題是使用數組來解決
我的認爲太過麻煩,且邏輯過於複雜
咱們徹底能夠讀入一次數據,輸出一次數據
,這在解決不少PAT的題目上都是極其有效的c++
其次,須要注意一下這句話——注意「零多項式」的指數和係數都是 0,可是表示爲 0 0
意思是若是求導後的多項式的全部項都是0,則輸出0 0便可算法