首页 > 学院 > 开发设计 > 正文

HPUOJ---2017寒假作业--专题-1/I-the Sum of Cube

2019-11-08 01:18:49
字体:
来源:转载
供稿:网友

I - the Sum of Cube

 A range is given, the begin and the end are both integers. You should sum the cube of all the integers in the range.InputThe 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 rangeA,BA,B.OutputFor 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 �C sum the cube of all the integers in the range.Sample Input
21 32 5Sample Output
Case #1: 36

Case #2: 224

思路:这道题关键是数据类型的转换,虽然题目范围A,B都是int型,但是立方后可能会变成long long,各项之

和相加得到的结果更有可能为long long,所以立方应设为long long,最后总和也应是long long;然而直接令总

和是long long,并不对,全部是int型的数据四则运算结果还是int,不会自动转化为long long,所以应令A或B

至少一个为long long,那样最终结果才会是long long;嗯,就这样。

代码一:

#include<stdio.h>int main(){	int T,k=0;	long long A,B,i,sum=0;	scanf("%d",&T);	while(T--)	{		scanf("%lld%lld",&A,&B);		for(i=A;i<=B;i++)			sum+=i*i*i;		k++;		printf("Case #%d: %-lld/n",k,sum);		sum=0;	}	return 0; }代码二:运用数组,
#include<cstdio>#include<cstring>#define max 1000000+11long long a[max];int main(){	memset(a,0,sizeof(a));	int j;	long long mul,i,SUM=0;	for(i=1;i<=max;i++)	{		mul=1;		for(j=1;j<=3;j++)			mul*=i;		SUM+=mul;		a[i]=SUM;          //a[i]表示1到i所有数据三次方之和	} 	int T,k=0; 	long long A,B; 	scanf("%d",&T); 	while(T--) 	{ 		scanf("%lld%lld",&A,&B); 		k++; 		printf("Case #%d: %-lld/n",k,a[B]-a[A-1]);	}	 return 0; }


上一篇:01R与Rstudio的获取与安装

下一篇:纪念

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表