f444: 10268 - 498-bis

  1. 1. 內容
  2. 2. 範例輸入
  3. 3. 範例輸出
  4. 4. 想法
  5. 5. 程式碼

CPE 一顆星選集 49 道必考題

題目連結:https://zerojudge.tw/ShowProblem?problemid=f444

內容

給定 X 與方程式,求微分後的值。

輸入
16
4 8 7 6 3
代表
X = 16
4X^4 + 8X^3 + 7X^2 + 6X^1 + 3

範例輸入

7
1 -1
2
1 1 1

範例輸出

1
5

想法

使用 getline 讀取方程式,接著利用 stringstream 將數字分別取出存入陣列。

遍歷一次陣列,運用微分公式 f′(x) = n*x^(n-1),即可求解。

程式碼

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <bits/stdc++.h>
#define fastio ios_base::sync_with_stdio(false), cin.tie(nullptr)
using namespace std;

int main(){
fastio;
int x ,mp[1000], c, sum, num;
string s;
stringstream ss;
while(cin >> x >> ws){
c = 0, sum = 0;
getline(cin, s);
ss << s;
while(ss >> mp[c++]);
--c;
ss.str(""), ss.clear();
for(int i = 0; i < c-1; ++i){
num = c-i-1;
sum += mp[i]*num*pow(x, num-1);
}
cout << sum << "\n";
}
}