您的位置:首页 > 其它

HDOJ--5053--the Sum of Cube

2016-07-20 16:03 260 查看
the Sum of Cube
Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u
Submit Status

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 有两种方法:1:直接暴力 2:立方和公式:1^3+2^3+3^3+……+n^3=(n*(n+1)/2)^2如图:图形法推倒1的立方到n的立方求和的公式。推理过程如下:


 注意数据类型

代码1:

#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
int  t,k=1;
long long a,b;
scanf("%d",&t);
while(t--)
{
long long ans=0,i;
scanf("%lld%lld",&a,&b);
for(i=a;i<=b;i++)
{
ans+=i*i*i;
}
printf("Case #%d: %lld\n",k++,ans);
}
return 0;
}


代码2

<pre name="code" class="cpp">#include <stdio.h>
int main()
{
int u;
int ans=1;
long long a,b;
long long c,c1,c2;
scanf ("%d",&u);
while (u--)
{
scanf ("%lld%lld",&a,&b);
printf ("Case #%d: ",ans++);
c1=(a*(a-1)/2)*(a*(a-1)/2);//a前面的数的立方和,即从1到a-1的立方和;
c2=(b*(b+1)/2)*(b*(b+1)/2);//从1到b的立方和;
c=c2-c1;
printf ("%lld\n",c);
}
return 0;
}



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: