首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

ZOJ 2969 / BNU 16488 Easy Task:多項式求導模擬題

     編輯:關於C++

題目大意

給定 n(最高次數),多項式有 n+1 項,系數從高次到低次輸入。求導後輸出各項系數(常數項導數為 0 不輸出)。

數學原理

akxk 導數為 k·akxk-1。只需將每個系數乘以其指數,指數遞減 1。

算法流程

  1. 讀入 n。
  2. 讀入 n+1 個系數 a[n], a[n-1], ..., a[0]。
  3. 對於 i = n ... 1,輸出 i * a[i](以空格分隔)。
  4. n=0 時輸出 0。

C++ 代碼

#include 
using namespace std;
int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int T, n;
    cin >> T;
    while (T--) {
        cin >> n;
        vector a(n+1);
        for (int i = n; i >= 0; --i) cin >> a[i];
        if (n == 0) {
            cout << 0 << '\n';
            continue;
        }
        for (int i = n; i >= 1; --i) {
            if (i != n) cout << ' ';
            cout << i * a[i];
        }
        cout << '\n';
    }
    return 0;
}

注意點

  • 系數可能較大,用 long long。
  • 輸出格式:項之間單空格,行末無多餘空格。
  • 多組測試用例,直到 EOF。

總結

純模擬題,關鍵在於讀懂「輸入係數順序為高次到低次」與「輸出導數係數同順序」。屬於熱身/入門級題目。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved