#include<stdio.h> int main() { int n; scanf("%d",&n); int i,j;//使用嵌套循环 int total=0; //外层循环:控制每个括号 for (i=1;i<=n;i++) { int sum=0; //内层循环 for (j=1;j<=i;j++) { sum+=j; } total+=sum; } printf("%d",total); return 0; }
方法 1:使用嵌套循环
外层循环控制要计算到第几个括号,内层循环计算每个括号内的和并累加:
方法 2:使用数学公式优化(上网查的公式)
1 + (1+2) + (1+2+3) + ... + (1+2+...+n)=n*(n+1)*(n+2)/6
#include <stdio.h> int main() { int n; scanf("%d", &n); // 应用公式:n*(n+1)*(n+2)/6 int total = n * (n + 1) * (n + 2) / 6; printf("%d\n", total); return 0; }