标签:datasets algo sum pac void sid div mes poi
内存限制:64MB
时间限制:3000ms
特判: No
通过数:5
提交数:7
难度:2
The nth Triangular number, T(n) = 1 + … + n, is the sum of the first n integers. It is the number of points in a triangular array with n points on side. For example T(4):
Write a program to compute the weighted sum of triangular numbers:
W(n) = SUM[k = 1…n; k * T(k + 1)]
The first line of input contains a single integer N, (1 ≤ N ≤ 1000) which is the number of datasets that follow. Each dataset consists of a single line of input containing a single integer n, (1 ≤ n ≤300), which is the number of points on a side of the triangle.
For each dataset, output on a single line the dataset number (1 through N), a blank, the value of n for the dataset, a blank, and the weighted sum ,W(n), of triangular numbers for n.
4 3 4 5 10
1 3 45 2 4 105 3 5 210 4 10 2145
C/C++ AC:
1 #include <iostream> 2 #include <algorithm> 3 #include <cstring> 4 #include <cstdio> 5 #include <cmath> 6 #include <stack> 7 #include <set> 8 #include <map> 9 #include <queue> 10 #include <climits> 11 12 using namespace std; 13 const int MY_MAX = 310; 14 int T[MY_MAX] = {0}, W[MY_MAX] = {0}, n; 15 16 void cal_W() 17 { 18 T[1] = 1, T[2] = 3; 19 for (int i = 1; i < MY_MAX - 5; ++ i) 20 { 21 W[i] = W[i - 1] + i * T[i + 1]; 22 T[i + 2] = T[i + 1] + i + 2; 23 } 24 } 25 26 int main() 27 { 28 cal_W(); 29 cin >>n; 30 for (int i = 1; i <= n; ++ i) 31 { 32 int temp; 33 scanf("%d", &temp); 34 printf("%d %d %d\n", i, temp, W[temp]); 35 } 36 }
nyoj 122-Triangular Sums (数学之读懂求和公式的迭代)
标签:datasets algo sum pac void sid div mes poi
原文地址:https://www.cnblogs.com/GetcharZp/p/9330770.html