You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在现有等差数列(AP)项展示代码中实现各项求和?

Adding Sum Calculation to Your Arithmetic Progression (AP) Code

Hey Gabriel, nice work getting your AP term display code up and running! Adding the sum of all terms is easy to do—here are two practical approaches you can use with your existing code:

Approach 1: Accumulate the Sum in the Loop

This is the most straightforward way, since you can just track the sum as you print each term. Here's how to modify your code:

P = int(input())
R = int(input())
Q = int(input())
# Initialize sum variable to 0
total_sum = 0
Cont = 0
while Cont <= Q:
    print("Termo", Cont, "da PA = ", P)
    # Add the current term to the sum before updating P
    total_sum += P
    P = P + R
    Cont = Cont + 1
# Print the total sum after the loop finishes
print("Soma de todos os termos da PA = ", total_sum)

Key Changes:

  • Added a total_sum variable initialized to 0 to keep track of the running total.
  • Added total_sum += P right after printing the term (since P holds the current term value before it's updated to the next one).
  • Added a final print statement to display the total sum once all terms are processed.

Approach 2: Use the Arithmetic Progression Sum Formula

If you want a more efficient solution (especially for large values of Q), you can use the mathematical formula for the sum of an AP. The formula is:

S = (n/2) * [2a + (n-1)d]
Where:

  • n = number of terms (in your case, that's Q + 1, since you start counting from 0 to Q)
  • a = first term of the AP (original value of P before any updates)
  • d = common difference (your R variable)

Here's how to implement this with your code:

P = int(input())
R = int(input())
Q = int(input())
# Save the original first term since we'll modify P later
first_term = P
number_of_terms = Q + 1
# Calculate sum using the formula
total_sum = (number_of_terms / 2) * (2 * first_term + (number_of_terms - 1) * R)
# Optional: Keep your existing loop to print terms
Cont = 0
current_term = first_term
while Cont <= Q:
    print("Termo", Cont, "da PA = ", current_term)
    current_term += R
    Cont += 1
# Print the calculated sum
print("Soma de todos os termos da PA = ", total_sum)

Why This Works:

  • We save the original P as first_term because your original code modifies P to get the next term.
  • We calculate the number of terms correctly (since you loop from 0 to Q, that's Q+1 terms total).
  • This method avoids looping to accumulate the sum, which is faster if Q is a very large number.

Both methods will give you the correct sum—pick the one that fits your needs best!

内容的提问来源于stack exchange,提问作者Gabriel Zangerme

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:03:55