1 条题解
-
0
题目解析
题意分析
这道题目要求我们计算三角形数的加权和 ,其定义为:
其中 是第 个三角形数,计算公式为:
输入要求:
- 第一行是测试数据集的数量 ()
- 每个测试数据是一个整数 ()
输出要求: 对每个测试数据,输出数据集编号、 和 的值
解题思路
-
理解三角形数:
- 三角形数 表示边长为 的三角形阵列中的点数
- 计算公式:
-
推导加权和公式:
- 将 代入加权和公式:
- 展开后得到:
- 利用求和公式:
- 最终得到:
-
简化计算:
- 可以预先计算 的通项公式:
标程
//216K 0Ms #include<iostream> using namespace std; int main() { int t; int n; int sum; int count = 1; cin>>t; while(t--) { sum = 0; cin>>n; for(int i = 1;i<= n;i++) { int tmp = (1+i+1)*(i+1)/2; tmp*=i; sum+=tmp; } cout<<count<<" "<<n<<" "<<sum<<endl; count++; } return 0; }
- 1
信息
- ID
- 2087
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 6
- 已通过
- 1
- 上传者