【PAT系列】PAT B1010

題目來自於PAT B1010

clipboard.png

題解
#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便可算法

相關文章
相關標籤/搜索