您的位置:首页 > 其它

HDOJ-----5053立方和公式

2016-07-20 23:19 309 查看
[align=left]Problem Description[/align]
A range is given, the begin and the end are both integers. You should sum the cube of all the integers in the range.
 

[align=left]Input[/align]
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].
 

[align=left]Output[/align]
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.
 

[align=left]Sample Input[/align]

2
1 3
2 5

 

[align=left]Sample Output[/align]

Case #1: 36
Case #2: 224

自己暴力过的

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


同学跟我说用立方和公式过更简单——

1^3 + 2^3 +...+n^3 = (n * (n+1) / 2) ^ 2



#include<cstdio>
int main()  {
int u, ans = 1;
double a, b, c, c1, c2;
scanf("%d",&u);
while(u--){
scanf("%lf%lf", &a, &b);
c1 = (a * (a-1) / 2) * (a * (a-1) / 2);
c2 = (b * (b+1) / 2) * (b * (b+1) / 2);
c = c2 - c1;
printf("Case #%d: %.lf\n", ans++, c);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: