首页 > 代码库 > 2014 ACM/ICPC Asia Regional Shanghai Online

2014 ACM/ICPC Asia Regional Shanghai Online

1012

the Sum of Cube

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

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: 36 Case #2: 224

 这个大水题居然wa一次

 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 using namespace std; 5  6 const int maxn = 105; 7  8 int main() { 9     int t;10     scanf("%d",&t);11     for(int kase = 1; kase <= t; kase++) {12         int a, b;13         scanf("%d %d",&a, &b);14         long long sum = 0;15         for(int i = a; i <= b; i++) {16             sum += i * i * i;17         }18         printf("Case #%d: %I64d\n", kase, sum);19     }20     return 0;21 }

wa的原因是对强制类型转换的不熟悉, 对于第16行i*i*i仍然是个int型但是不能自动转换为long long

所以只要加一个强转就可以了-。-

代码:

 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 using namespace std; 5  6 const int maxn = 1005; 7  8 int main() { 9     int t;10     int a, b;11     scanf("%d",&t);12     for(int kase = 1; kase <= t; kase++) {13         scanf("%d %d",&a, &b);14         long long sum = 0;15         for(int i = a; i <= b; i++) {16             sum += (long long ) i * i * i;17         }18         printf("Case #%d: %I64d\n", kase, sum);19     }20     return 0;21 }
View Code

 

2014 ACM/ICPC Asia Regional Shanghai Online