【杭电oj】5053-the Sum of Cube(立方和)

the Sum of Cube

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1984    Accepted Submission(s): 811


Problem Description
A range is given, the begin and the end are both integers. You should sum the cube of all the integers in the range.
 

Input
The first line of the input is T(1 <= T <= 1000), which stands for the number of test cases you need to solve.
Each case of input is a pair of integer A,B(0 < A <= B <= 10000),representing the range[A,B].
 

Output
For each test case, print a line “Case #t: ”(without quotes, t means the index of the test case) at the beginning. Then output the answer – sum the cube of all the integers in the range.
 

Sample Input
   
   
   
   
2 1 3 2 5
 

Sample Output
   
   
   
   
Case #1: 36 Case #2: 224
 

Source
2014 ACM/ICPC Asia Regional Shanghai Online

图形法推倒1的立方到n的立方求和的公式。推理过程如下:

【杭电oj】5053-the Sum of Cube(立方和)_第1张图片


计算结果如下:   1³+2³+3³+…+n³=(n*(n+1)/2)²

有公式代码就不是问题了。

#include <stdio.h>
int main()
{
	int u;
	int ans=1;
	double a,b;
	double c,c1,c2;
	scanf ("%d",&u);
	while (u--)
	{
		scanf ("%lf %lf",&a,&b);
		printf ("Case #%d: ",ans++);
		c1=(a*(a-1)/2)*(a*(a-1)/2);
		c2=(b*(b+1)/2)*(b*(b+1)/2);
		c=c2-c1;
		printf ("%.lf\n",c);
	}
	return 0;
}






你可能感兴趣的:(【杭电oj】5053-the Sum of Cube(立方和))