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

来源:互联网 发布:淘宝数据分析表 编辑:程序博客网 时间:2024/05/16 12:43
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
21 32 5
 


Sample Output
Case #1: 36Case #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;  }  

0 0
原创粉丝点击