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的立方求和的公式。推理过程如下:
![](http://img.blog.csdn.net/20151217125849657?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
注意数据类型
代码1:
代码2
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; }
相关文章推荐
- 学习笔记- AVFoundation Programming Guide - Using Assets
- 剑指offer——数组中重复的数字
- ScrollView 里嵌套WebView,WebView不能上下滑动或卡顿
- 使用MongoDB.NET 2.2.4驱动版本对 Mongodb3.3数据库中GridFS增删改查
- std::max
- 利用win7操作系统粘滞键漏洞更改Windows管理员密码
- Jenkins + Xcode + Fir.im 自动构建项目,并打包ipa上传(MAC)
- PreferenceScreen修改背景颜色
- Leetcode题解 268. Missing Number
- AngularJS
- 一些Editor整理(为自己)
- hdoj4548美素数
- 电商平台如何接入智选物流平台?
- atlas管理命令介绍
- muduo : StringPiece
- Centos7.0安装redis
- Android高效加载大图、多图解决方案,有效避免程序OOM
- Jquery对select下拉框的操作
- ORACLE中一个字符占多少字节?
- IOS开发中实现whatsapp和Facebook分享过程的总结