关于C语言的一道题
求大神!本帖最后由 friendan 于 2013-11-12 22:14 编辑
哎,我最近比较喜欢做题,效果截图如下(欢迎验证):
代码如下:
#include <stdio.h>
//计算下面表达式前n项中偶数项的和
//1x2x3+2x3x4+3x4x5+...+nx(x+1)x(x+2)+...
int CalSum(int n)
{
unsigned sum=0,last=0;
if(n<2)
{
return 0;//n小于2时结果为0
}
if(n<=3)
{
return (2*3*4);//n小于4时结果为24
}
//n大于3的话
//n是偶数时,第一项是2x3x4,最后一项是nx(n+1)x(n+2)
//n是奇数时,第一项是2x3x4,最后一项是(n-1)x(n)x(n+1)
if(0==n%2)
{
last=n;
}
else
{
last=n-1;
}
//计算前n项中偶数项的和
for(int i=2;i<=last;)
{
sum+=i*(i+1)*(i+2);
i+=2;//下一偶数项
}
return sum;
}
void main ()
{
for(int i=1;i<=10;i++)
{
//%-5d表示输出5列,左对齐,不足5列则补空格
printf("前%-2d项中偶数项的和为:%-5d\n",i,CalSum(i));
}
}
虽然有点复杂。。。 #include"stdio.h"
void main()
{
int haha(int n);
int sum=0,n;
printf("请输入表达式(1*2*3+2*3*4+……+n*(n+1)*(n+2)的项数n:");
scanf("%d",&n);
printf("表达式(1*2*3+2*3*4+……+n*(n+1)*(n+2)的前n项中偶数项的和=%d\n",haha(n));
}
int haha(int n)
{
int sum=0,i;
for(i=2;i<=n;i+=2)
sum+=i*(i+1)*(i+2);
return sum;
}
页:
[1]