iT邦幫忙

2023 iThome 鐵人賽

DAY 8
0
AI & Data

(C/C++)利用ChatGPT整理CPE(大學程式能力檢定)一星題庫系列 第 10

(DAY 10)CPE一星題庫UVA10268&UVA10783(C/C++)

  • 分享至 

  • xImage
  •  

UVA10268

ChatGPT 問題輸入:

大學程式能力檢定 UVA10268 498’ 問題的中文與英文描述,包含錯誤處理和邊界檢查的完整C++範例程式碼,用於解決UVA10268問題,以及解題思路的解釋

題目描述:
中文:給定一個多項式,以及一個特定的x值,你需要計算該多項式在給定x值時的導數。多項式的表示方式是以指數遞減的順序給出,例如:
P(x) = An * x^n + An-1 * x^(n-1) + ... + A2 * x^2 + A1 * x^1 + A0
你需要計算P'(x),即多項式的導數,並求出P'(x)在給定x值時的值。
英文:Given a polynomial and a specific x value, you need to calculate the derivative of the polynomial at the given x value. The polynomial is represented in decreasing order of exponents, for example:
P(x) = An * x^n + An-1 * x^(n-1) + ... + A2 * x^2 + A1 * x^1 + A0
You need to calculate P'(x), which is the derivative of the polynomial, and find its value at the given x value.

範例程式碼:

#include <iostream>
#include <vector>
#include <cmath>

using namespace std;

int main() {
    int n;
    while (cin >> n) {
        vector<int> coefficients(n + 1);
        
        // Read coefficients of the polynomial
        for (int i = 0; i <= n; i++) {
            cin >> coefficients[i];
        }
        
        int x;
        cin >> x;
        
        // Calculate the derivative and evaluate it at x
        int derivative = 0;
        for (int i = 0; i < n; i++) {
            derivative += coefficients[i] * (n - i) * pow(x, n - i - 1);
        }
        
        cout << derivative << endl;
    }
    return 0;
}

這個程式碼首先讀取多項式的次數n,然後讀取多項式的係數。接下來,它讀取x的值,計算多項式的導數,並在x處評估導數的值。最後,輸出導數的值。

解題思路:
解決這個問題的基本思路是計算多項式的導數。多項式的導數可以通過對每一項進行微分來計算。對於每一項An * x^n,其導數為n * An * x^(n-1)。因此,我們需要遍歷多項式的每一項,計算它的導數,然後將這些導數相加以得到多項式的導數。最後,將x的值代入導數中,計算出最終的結果。

UVA10783

ChatGPT 問題輸入:

大學程式能力檢定 UVA10783 Odd Sum 問題的中文與英文描述,包含錯誤處理和邊界檢查的完整C++範例程式碼,用於解決UVA10783問題,以及解題思路的解釋

題目描述:
中文:給定兩個正整數A和B(A ≤ B),請計算A到B之間的所有奇數數字的總和。也就是說,對於給定的範圍[A, B],你需要計算A、A+2、A+4、...、B(如果它們是奇數)的總和。
英文:Given two positive integers A and B (A ≤ B), you are required to calculate the sum of all odd integers in the range [A, B]. In other words, for the given range [A, B], you need to calculate the sum of A, A+2, A+4, ..., B (if they are odd).

範例程式碼:

#include <iostream>

using namespace std;

int main() {
    int t; // 測試案例數量
    cin >> t;

    for (int caseNumber = 1; caseNumber <= t; caseNumber++) {
        int a, b;
        cin >> a >> b;

        // 確保a是奇數,如果是偶數,將其增加1
        if (a % 2 == 0) {
            a++;
        }

        int sum = 0;
        for (int num = a; num <= b; num += 2) {
            sum += num;
        }

        cout << "Case " << caseNumber << ": " << sum << endl;
    }

    return 0;
}

這個程式碼首先讀取測試案例的數量t,然後對每個測試案例進行處理。對於每個測試案例,它讀取範圍[A, B],確保A是奇數,然後遍歷範圍並計算奇數數字的總和。最後,輸出結果以"Case X: Y"的形式,其中X是測試案例編號,Y是奇數數字的總和。

解題思路:
解決這個問題的基本思路是遍歷範圍[A, B]中的每個數字,檢查它是否為奇數,如果是奇數,就將它加入總和中。因此,我們需要使用一個迴圈來遍歷範圍,並使用一個變數來維護奇數數字的總和。最後,輸出這個總和即可。


上一篇
(DAY 9)CPE一星題庫UVA10056&UVA10170(C/C++)
下一篇
(因假日中斷?)主因還是ChatGPT寫程式的問題解答正確率,或者說提問詞(Prompt)不夠詳細
系列文
(C/C++)利用ChatGPT整理CPE(大學程式能力檢定)一星題庫11
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言