码迷,mamicode.com
首页 > 编程语言 > 详细

32-语言入门-32-Triangular Sums

时间:2016-01-19 14:26:53      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:

?
描述
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):
X
X X
X X X
X X X X
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
?
?
英文没咋看懂,重要的是这个公式:
W(n) =?SUM[k?= 1…n;?k?*?T(k?+ 1)]
?
从1开始遍历到输入的n k
k* sum[1-(k+1)]
然后将各个项相加取和
?
最终输入的格式是:
序号 输入的数值 最终的和
?
代码:
?
#include <stdio.h>

static int getSum(int num);

int main()
{
???? int readLen = 0;
???? scanf("%d",&readLen);
???? getchar();
????
???? int index = 1;
???? while(readLen > 0)
???? {
????????? int num = 0;
????????? scanf("%d",&num);
????????? getchar();
?????????
????????? int sum = getSum(num);
????????? printf("%d %d %d\n",index,num,sum);
????????? ++index;
?????????
????????? --readLen;
???? }
????
???? return 0;
}

static int getSum(int num)
{
???? int index = 1;
???? int result = 0;
???? int tmpSum = 1;
???? for(;index <= num;++index)
???? {
????????? tmpSum += (index+1);
????????? result += index*tmpSum;
???? }
????
???? return result;
}

32-语言入门-32-Triangular Sums

标签:

原文地址:http://www.cnblogs.com/sharpfeng/p/5141907.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!